この特集のトップページへ
>
Chapter 7:プレゼンテーション層の構築
7.4.3 顧客の一覧参照
顧客の新規登録ができたところで,次に顧客の一覧をウィンドウ内に表示できるようにする。Fig.7-16に示したように,今回はDGrid_Customerというデータグリッドコントロール(DataGridコントロール)に一覧を表示することにする。
データグリッドは,ADOデータコントロール(ADODCコントロール)などと結び付けられ,コントロールが保持するデータベースのレコードの内容(レコードセット)を一覧表示する機能を備えている。ADOデータコントロールと結び付ける手法であれば,データグリッドに結び付けられているADOデータコントロールと接続されているデータベーステーブルの構造を取得し,どのフィールドを表示するのかを自動的に設定することができる。
しかし今回は,データグリッドコントロールをADOデータコントロールに結び付けるのではなく,ADODB.Recordsetオブジェクトを動的に結び付ける。なぜなら,ADOデータコントロールはプロパティにデータベース接続文字列やテーブル名(もしくは実行するSELECT文)を指定して直接データベースと接続してその内容を取得するコントロールであり,アプリケーションとデータベースとが直結する2階層モデルで使われるものだからである。ここではN階層モデルのアプリケーションを構築しているわけだが,N階層モデルのアプリケーションでは,プレゼンテーション層とデータベースとが直結してアクセスすることは許されない。そのために前章では,登録されている全顧客をADODB.Recordsetオブジェクトとして返すGetCustomersというメソッドをBusiness.Customerコンポーネントに実装したのである。
そういった理由から,データグリッドにはBusiness.CustomerコンポーネントのGetCustomersメソッドを呼び出して取得したADODB.Recordsetオブジェクトを結び付け,その内容を表示させることにする。
データグリッドとADODB.Recordsetオブジェクトとを結び付けるには,データグリッドのDataSourceプロパティに,結び付けたいADODB.Recordsetオブジェクトを設定すればよい。ただし,その方法は後述することにして,ここでは結びつけたADODB.Recordsetオブジェクトがもつ列(フィールド)のうち,どの列をデータグリッドに表示するのかを設定する方法について説明する。
○表示列を登録する表示列をデータグリッドに登録するには,データグリッドを右クリックして[プロパティ]を選択する。すると,データグリッドのプロパティが表示され,[列]ページで表示列のキャプションとデータフィールドを設定することができるようになる(Fig.7-26)。
Fig.7-26 データグリッドのプロパティの[列]ページ
Fig.7-26では,第何列目の値を設定するかを[Column]の部分で選択し,表示したいキャプションを[Caption]に,ADODB.Recordsetオブジェクトに含まれる表示したいフィールド名を[DataField]に,それぞれ入力する。
Business.CustomerコンポーネントのGetRecordsメソッドは,Table 7-6に示す全部で13個のフィールドを含むADODB.Recordsetオブジェクトを返すから,これらのフィールドをすべてFig.7-26の画面で登録することになる。
Table 7-6に示す全フィールドをデータグリッドに登録する必要性はない。表示したくないフィールドについては,登録しなくてかまわない。
Table 7-6 Business.CustomerコンポーネントのGetRecordsメソッドが返すADODB.Recordsetオブジェクトに含まれるフィールド
キャプション | フィールド名 |
---|---|
顧客番号 | ID |
よみがな | YOMIGANA |
顧客名 | NAME |
郵便番号 | ZIP |
住所 | ADDRESS |
電話番号 | TELEPHONE |
FAX番号 | FAX |
摘要 | MEMO |
締め日 | BILLDAY |
作成者 | MADEUSER |
作成日 | MADEDATE |
最終更新者 | LASTUSER |
最終更新日 | LASTDATE |
削除ずみ | DELETEDFLAG |
原理的には,Fig.7-26においてTable 7-6に示したすべてのフィールドを登録すればよいのだが,データグリッドは初期状態で2列しか存在しないので,2列以上は登録できない。ではどうすればよいのかというと,事前にデータグリッドに列を追加しておくのである。
列を追加するには,データグリッドを右クリックし,表示されたメニューから[編集]を選択する。そうすると,データグリッドがGUIによる列幅や列の位置などの設定モードに入る。その状態でさらに右クリックし,表示されたメニューから[追加]または[挿入]を選択すると,列を追加することができる(Fig.7-27)。[追加]を選択したときには一番右側に新しい列が追加され,挿入を選択したときにはマウスを右クリックした場所に列が挿入される。このようにして列を追加し,あらかじめ13個の列を作ってから,Fig.7-26の画面で各列のキャプションとフィールド名を登録してゆくのである。
Fig.7-27 列の追加
15/134 |