データ表示をカスタマイズする(コード不要の IBX チュートリアル)
チュートリアル:InterBase Express を使用してコードを書かずにアプリケーションを作成する への移動
前のセクションの TDBGrid には、データベース内のメタデータとデータがそのままの形で表示されています。 このセクションでは、データの表示をカスタマイズします。
可能なカスタマイズ
データベース メタデータには SPECIES_NO、CATEGORY、COMMON_NAME などのフィールド名が含まれていて、その名前が TDBGrid のヘッダーとして表示されます。 アプリケーション上では別の名前で表示した方がいいかもしれません。
また、すべてのデータ フィールドを表示する必要がないかもしれません。 デフォルトでは、ほとんどのデータベース フィールドが TDBGrid に表示されます。 ここでは、TDBGrid から SPECIES_NO の列を取り除きたいとします。
データ表示をカスタマイズするには、アプリケーションで使用したいフィールドを指定します。 そのフィールド リストには、テーブルのフィールドのサブセットを指定することができます。 また、フィールド リストの項目を変更すると、フィールド名などのメタデータの表示方法を変更することもできます。
フィールド リストの作成と変更
フィールド エディタを表示するには、フォーム デザイナ上で TIBDataSet コンポーネントをダブルクリックします。 最初は、フィールドが何も含まれていません。
- フィールド エディタの空のフィールド リストを右クリックします。 コンテキスト メニューから[フィールドの追加...]を選択します。 [フィールドの追加]ダイアログが開き、そこにテーブル内のすべてのフィールドが一覧表示されます。
- このアプリケーションで SPECIES_NO フィールドを使用しない場合には、Ctrl キーを押しながら SPECIES_NO フィールドをクリックして、選択を解除します。
- [OK]をクリックしてフィールド リストを承認し、[フィールドの追加]ダイアログを閉じます。 これで、[フィールドの追加]ダイアログで選択したフィールドがすべて、フィールド エディタに表示されます。
RAD Studio の左上にある[構造]ビューには、フォームのコンポーネントの概要が階層構造で表示され、その中にテーブルのフィールドも含まれています。 次の図を見ると、"IBDataSet1" ノードの下の Fields リストには、先ほど追加したフィールドしか含まれていないことがわかります。 また、TDBGrid には、SPECIES_NO フィールドが表示されなくなっています:
作成したフィールド リストをカスタマイズすることができます。
フィールドの順序は、2 つの方法で変更することができます。
- フィールド エディタで、フィールド名をリスト内の新しい場所にドラッグします。
- [構造]ビューで、"IBDataSet1" の下のフィールド リスト内のフィールドを、リスト内の新しい場所にドラッグします。
たとえば、COMMON_NAME を LENGTH_IN の後にドラッグします。 フィールド リストに合わせて、TDBGrid のフィールドの順序が変更されます。
また、TDBGrid に表示される列ヘッダーを変更することもできます。
- フィールド エディタで CATEGORY を選択します。 この項目は、TStringField を継承した TIBStringField を表しています。
- [オブジェクト インスペクタ]で、DisplayLabel プロパティを "Category" に変更します。 この変更を行うと、TDBGrid の列名も "Category" に変更されます。 「DisplayLabel」も参照してください。
- 残りのフィールドの DisplayLabel も、次のように新しい値に変更します。
フィールド名 | DisplayLabel |
---|---|
CATEGORY |
Category |
SPECIES_NAME |
Species Name |
LENGTH__CM_ |
Length (cm) |
LENGTH_IN |
Length (in) |
COMMON_NAME |
Common Name |
NOTES |
Notes |
GRAPHIC |
Graphic |
TDBGrid リストの変更
TDBGrid コンポーネントを右端までスクロールすると、Notes と Graphic の列が現れます。 この 2 つのフィールドのデータは、TDBGrid コンポーネントに表示するのにふさわしくありません。 Notes と Graphic のフィールドは、それぞれに合った他のコンポーネントにすでに表示されています。 つまり、画像は TDBImage に、メモ テキストは TDBText に表示されています。
SPECIES_NO フィールドを TDBGrid から消したときには、フィールド リストに SPECIES_NO フィールドを含めないという方法で行いました。 しかし、NOTES フィールドと GRAPHIC フィールドはフィールド リストから削除したくありません。削除するとアプリケーションでまったく使用できなくなるからです。 NOTES と GRAPHIC の列を TDBGrid に表示したくないだけです。
そのためには、フィールド エディタで NOTES の項目を選択します。 [オブジェクト インスペクタ]で、Visibleを False に変更します。 GRAPHIC の項目についても同じようにします。 これで、どちらのフィールドも TDBGrid に表示されなくなりました。
これでアプリケーションの作成は終わりです。 コードは 1 行も書く必要がありませんでした!
設計時のデータベース レコードの表示
TIBDataSet.Active プロパティを True に設定すると、データ対応コントロールにデータベースの情報を表示させることができます。 最初は最初のレコードしか表示されません。 他のデータベース レコードは、次の 2 つの方法で表示できます。
- TDBGrid のスクロールバーを使用します。 スクロールすると、行単位、またはページ単位で別のレコードが表示されます。
- フィールド エディタを使用します。 フィールド エディタ ダイアログには上部にナビゲーション ボタンがあります。 これらのコントロール ボタンをクリックすると、最初、前、次、最後のデータベース レコードが表示されます。