ADT フィールドと配列フィールドの表示

提供: RAD Studio
移動先: 案内検索

TDBGrid を使ったデータの表示と編集 への移動


グリッドのデータセットのフィールドが、テキストやグラフィックや数値などの単純な値を表すのでない場合があります。データベース サーバーの中には、ADT フィールドや配列フィールドなど、より単純なデータ型を組み合わせた複合フィールドを使用できるものがあります。

グリッドに複合フィールドを表示する方法は 2 とおりあります。

  • フィールドを "開いて"、フィールドを構成する単純な型それぞれをデータセット内の個別のフィールドとして表示することができます。
  • 1 つのフィールドであるという事実を反映して、複合フィールドを 1 つの列に表示することができます。

複合フィールドを開いて表示すると、その各部分は個別のフィールドとして表示されます。共通のソースは、各フィールド名の前に背後のデータベース テーブルにおける共通の親フィールドの名前が付くという点にしか反映されません。

複合フィールドを開いて表示するには、データセットの ObjectView プロパティを False に設定します。データセットは複合フィールドを個別のフィールドの集合として格納し、グリッドはそれを反映して各部分を個別の列に割り当てます。

複合フィールドを 1 つの列に表示した場合は、フィールドのタイトル バーの矢印をクリックするか、列の Expanded プロパティを設定することで、列を展開したり折りたたむことができます。

  • 列を展開すると、子フィールドがそれぞれ独立したサブ列に表示され、そのタイトル バーが親フィールドのタイトル バーの下に表示されます。つまり、グリッドのタイトル バーが高くなって、1 行目に複合フィールドの名前が表示され、2 行目にはそれを分割して個々の部分が表示されます。複合フィールド以外のフィールドのタイトル バーは、高さが増すだけです。各部分がさらに複合フィールドである場合(たとえば詳細テーブルの中に詳細テーブルがネストしているような場合)には、それをさらに展開することができ、タイトル バーはそれに合わせて高くなります。
  • フィールドを折りたたむと、表示される列は 1 列だけになり、子フィールドをカンマで区切って並べた文字列が表示されます。これは編集することができません。

複合フィールドを展開および折りたたみが可能な列として表示するには、データセットの ObjectView プロパティを True に設定します。データセットには、一連のネストしたサブフィールドを含む 1 つのフィールド コンポーネントとして、複合フィールドが格納されています。それを反映して、グリッドには展開および折りたたみが可能な 1 つの列が表示されます。

次の図は、ADT フィールドと配列フィールドを含むグリッドです。データセットの ObjectView プロパティは False に設定され、子フィールドはそれぞれ別の列に表示されています。

Obj2 grid.jpg

ObjectViewFalse に設定された TDBGrid コントロール

次の 2 つの図は、ADT フィールドと配列フィールドを含むグリッドです。最初の図のフィールドは折りたたまれています。この状態では編集できません。2 番目の図のフィールドは展開されています。フィールドのタイトル バーの矢印をクリックすると、フィールドを展開したり折りたたむことができます。

Obj3 grid.jpg

ExpandedFalse に設定された TDBGrid コントロール

Obj grid.jpg

ExpandedTrue に設定された TDBGrid コントロール

次の表に、TDBGrid 内での ADT フィールドと配列フィールドの表示方法に影響するプロパティを示します。

複合フィールドの表示方法に影響するプロパティ: 

プロパティ オブジェクト 用途

Expandable

TColumn

列を展開して子フィールドを個別の編集可能な列に表示できるかどうかを示します(読み取り専用)。

Expanded

TColumn

列が展開されているかどうかを示します。

MaxTitleRows

TDBGrid

グリッド内に表示できるタイトルの最大行数を示します。

ObjectView

TDataSet

フィールドを開いて表示するか、各オブジェクト フィールドの展開や折りたたみが可能なオブジェクト モードで表示するかを指定します。

ParentColumn

TColumn

子フィールドの列を所有する TColumn オブジェクトを参照します。


メモ: ADT フィールドや配列フィールドの他に、データセットが、他のデータセットを参照するフィールド(データセット フィールド)や他のデータセット内のレコードを参照するフィールド(参照フィールド)を含んでいる場合があります。データベース対応グリッドでは、それらのフィールドは "(DataSet)" および "(Reference)" と表示されます。実行時には、右側に参照([...])ボタンが表示されます。参照ボタンをクリックすると、フィールドの内容をグリッドに表示した新しいフォームが開きます。データセット フィールドの場合、このグリッドには、フィールドの値であるデータセットが表示されます。参照フィールドの場合、このグリッドには、別のデータセットのレコードを表示する単一の行が含まれます。

関連項目