この特集のトップページへ
Chapter 7:プレゼンテーション層の構築

7.4.1 顧客管理用のフォーム
●フォームの構成
 フォームを新規作成したならば,その上にボタンやテキストボックスなど必要なコンポーネントを配置してゆく。今回は,Fig.7-16に示すような画面構成をとることにする。

Fig.7-16 FormCustomerフォームの画面構成
fig7_16

 ボタンやテキストボックスなどのコンポーネントは,当然,タブ順序を指定したり,デフォルトボタンをどれにするのかを設定したりすることが必要となるわけだが,ここでは,各コンポーネントのプロパティの設定についての説明は省き,コンポーネントの種類とコンポーネントの名前(オブジェクト名)を示すに留めた。

 本章の最後には,構築したプログラムのソースをダウンロードできる形にしておいておくので,各コンポーネントに設定したプロパティの値については,そのプログラムをVisual Basicで開いて各自確認してほしい。

 フォームに配置した,各コンポーネントの役割は以下のとおりである。

  • [新規]ボタン
     新しく顧客を登録する。

  • [編集]ボタン
     既存の顧客を編集する。

  • [削除]ボタン
     既存の顧客を削除する。ビジネスロジックで構築したように,1回目の削除では顧客情報テーブルのDELETEDFLAGフィールドの値をTrueにし,削除ずみというマークを付けるだけとし,2回目の削除でレコードそのものを削除するという2段階の削除方式をとる。

  • [復帰]ボタン
     削除ずみというマークが付いている(DELETEDFLAGフィールドの値がTrueである)顧客を復帰させる。具体的には,DELETEDFLAGフィールドの値をFalseに設定する。

  • [印刷]ボタン
     DGrid_Customerデータグリッド表示されている内容一覧を印刷する。

  • [最新の状態に更新]ボタン
     サーバーと再接続し,DGrid_Customerデータグリッドに最新の情報を表示するよう更新する。

  • [検索]ボタン
     その左にあるテキストボックス(TXT_SEARCHテキストボックス)に入力された内容と合致するものを検索する。検索対象となる列は,その下にあるドロップダウンリストボックス(COMBO_SEARCHFIELDドロップダウンリストボックス)で選択された列を対象とする。ドロップダウンリストボックスには,「顧客番号」「よみがな」「顧客名」など,DGrid_Customerコンポーネントに表示されている各列の一覧を格納する。たとえば,ユーザーがテキストボックスに「ソフトバンクパブリッシング」と入力し,ドロップダウンリストボックスで「顧客名」が選択されている状態で[検索]ボタンが押されたならば,顧客名がソフトバンクパブリッシングであるレコードを検索するといった具合である。

  • [表示項目]ボタン
     DGrid_Customerデータグリッドにどの列を表示するのかを設定するウィンドウを表示する。このボタンを押すと,Fig.7-17のようなウィンドウを表示し,ユーザーが表示したい列にチェックを付けると,その列だけを表示するように設定する。

  • DGrid_Customerデータグリッド
     登録されている顧客の一覧を表示するDataGridコントロールである。具体的には,ビジネスロジックであるBusiness.CustomerコンポーネントのGetCustomersメソッドを呼び出して得たADODB.Recordsetオブジェクトをこのなかに表示するということになる。
     なお,DataGridコントロールを使うためには,プロジェクトに[Microsoft DataGrid Control 6.0]を登録しておく必要がある。DataGridコンポーネントを登録するには,メニューから[プロジェクト]−[コンポーネント]を選択し,表示された[コンポーネント]ダイアログボックスから[Microsoft DataGrid Control 6.0]をチェックする(Fig.7-18)。

Fig.7-17 表示項目ウィンドウ
fig7_17

Fig.7-18 コンポーネントの挿入
fig7_18

●メニュー選択によって顧客管理用のフォームを開くようにする
 フォームの作成が終わったならば,ユーザーがMDI親フォームの[表示]−[顧客情報]を選択したときに,作成した顧客管理用のフォームを開くような処理を実装する。それには,[表示]−[顧客情報]メニューに対応させたMenu_Customerメニュー(Table 7-3を参照)のClickイベントにList 7-4の処理を実装すればよい。

Prev 8/134 Next