4D v12.4

グループ化されたスクロールエリア

ホーム

 
4D v12.4
グループ化されたスクロールエリア

 

グループ化されたスクロールエリア  


 

 

互換性に関する注意: これまで同様4Dでグループ化されたスクロールエリアを利用できます。しかしバージョン2004以降、これらはリストボックスタイプのオブジェクトに置き換えることができます。この件に関する詳細はの節を参照してください。

スクロールエリアは、グループ化してフォームに表示できます。複数のスクロールエリアをグループ化すると、それらは1つのスクロールエリアとして動作します。それぞれのスクロールエリアには独自のフォントとフォントサイズを指定できますが、各カラムのフォントの高さ(フォントとフォントサイズに依存する)は同一にすることをお勧めします。データ入力中に表示する場合、最前面にあるスクロールエリアがスクロールバーを表示します。次の図は、デザインモードで、3つのスクロールエリアをグループ化しています:

以下にグループ化されたスクロールエリアを作成する際のヒントを示します:

  • すべての配列が同じサイズ(同じ要素数)になっているかを確認する。
  • 各エリアに対して、すべて同じフォントサイズを使用する。
  • 各エリアを同じ高さにする。
  • すべてのエリアの一番上を揃える。
  • 隣接するエリアが互いに重ならないようにする。
  • 一番右のエリアを前面にする。最前面のエリアにスクロールバーが表示されるため。
  • グループ化メニューコマンドを使用してエリアをグループ化し、1つのスクロールエリアとして動作させる。

次のプロジェクトメソッドは、3つの配列にデータを格納し、画面上に表示します:

 ALL RECORDS(Employees)
 SELECTION TO ARRAY([Employees]Last Name;asName;[Employees]Title;asTitle;[Departments]Name;asDepartment)
 DIALOG([Departments];"Example Grouped SA")

このメソッドは、[People]テーブルと[Departments]テーブルのフィールドにあるデータを使用します。これらのテーブルを次に示します:

Note: [Departments]テーブルは、[People]から[Departments]への自動リレーションが存在する場合に使用できます。

結果は、次の通りです:

スクロールバーが1つしか表示されていないことに注意してください。スクロールバーは常に最前面のスクロールエリアに表示されます。このスクロールバーは、3つの配列をあたかも1つの配列のように制御します。ユーザが行をクリックすると、3つのエリア全部が同時に反転表示されます。それぞれのスクロールエリアに関連付けられた変数は、ユーザがクリックした行の番号に設定され、クリックされたエリアのオブジェクトメソッドだけが実行されます。例えば、ユーザが名前“Bentley”をクリックすると、asName, asTitle, asDepartmentがすべて2に設定されますが、asNameのオブジェクトメソッドだけが実行されます。グループ化されたスクロールエリアのいずれかの配列で選択要素を設定すると、次のイベントのためにグループの他の配列も同じ要素が選択に設定され、それぞれのスクロールエリアの行が反転表示されます。

配列は、SORT ARRAYコマンドを使用してソートできます。次に例を示します:

 SORT ARRAY(asTitle;asName;asDepartment;>)

次にソート結果を示します:

配列がSORT ARRAYコマンドの最初の引数に基づいてソートされたことに注目してください。他の2つの配列は、行が同期するように指定されています。SORT ARRAYコマンドは、常に最初の配列の値に基づいて配列をソートし、他の配列をそれに同期させます。

Note: SORT ARRAYコマンドは、配列に対するマルチレベルのソートはできません。上記のようなテーブルを表示して、マルチレベルのソートを実行する(すなわち部門でソートしてから、役職名でソートし、次に名前でソート)には、テーブルを表示するサブフォームを使用してから、ORDER BY コマンドを使用します。

 
プロパティ 

プロダクト: 4D
テーマ: 配列

 
参照 

配列
配列とフォームオブジェクト