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

7.8.1 請求書情報ウィンドウのフォーム
●フォームがロードされたとき
 FormBillフォーム(Fig.7-105)がロードされたときには,次の3つの処理をする。

ロールの調査
 ユーザーがどのロールに属しているのかを調べ,FormBillフォーム上に用意されているボタンのうち,利用できないものを不可視にする。ただし,このサンプルでは,AllAdminAccountingAccountingAdminといういずれかのロールに属さない場合には,メニューの[表示]−[請求書情報]を淡色表示にしているため,FormBillフォームの検証時点では,AllAdminAccountingAccoutingAdmin以外のロールに属するユーザーの存在は無視することができる。
 
データグリッドコントロールの内容の更新
 DGrid_Billデータグリッドの内容を更新し,その時点で登録されている請求書の内容を表示させる。
 
検索用のコンボボックスに列見出しを格納
 COMBO_SEARCHFIELDコンボボックスにDGrid_Billデータグリッドに記載されている列見出しを格納する。
○データグリッドコントロールの内容を更新する
 これらの3つの処理をするため,まずはデータグリッドコントロールの内容を更新するプロシージャを作成してみる。ここでは,List 7-181に示すRefreshDataという名前のプロシージャを実装する。

 List 7-181は,23行目や26行目にあるように,Business.BillコンポーネントのGetBillsメソッド(List 6-186)を呼び出し,請求書の一覧を含むADODB.Recordsetオブジェクトを取得し,それをDGrid_Billデータグリッドと結び付けるという処理をするものである。2行目にあるグローバル変数g_Orderは,並び替えの設定をする変数であると定める。このグローバル変数には,DGrid_Billデータグリッドの見出し列がクリックされたときに,その列の文字列を格納することで,指定された列で並び替え処理を実現させる。その実装は,List 7-182のようになる。

 また,List 7-181の5〜10行目にあるグローバル変数g_CUSTOMERIDg_BILLSTATUSg_startMADEDATEg_endMADEDATEg_startSUBMITDATEg_endSUBMITDATEは,絞り込みの設定値であると定める。これらの変数は,後述の「●絞り込み処理」で説明する絞り込みの設定ウィンドウによって,ユーザーが表示内容を絞り込むために指定した条件に合うように設定するものとする。

○検索用コンボボックスに列見出しを格納する
 次に,検索用コンボボックスにDGrid_Billデータグリッドの列見出しを格納する処理を実装する。ここでは,List 7-183に示すSetFieldListプロシージャにその処理を実装する。

○フォームがロードされたときの処理の実装
 フォームがロードされたときの処理を実装する。先に説明したように,フォームがロードされたときの処理とは,(1)ユーザーのロールを調査して一部のボタンを不可視にする,(2)データグリッドの内容を更新する,(3)列見出しを検索用コンボボックスに設定する,という3つの処理の組み合わせである。その実装は,List 7-184のようになる。List 7-184では,AllAdminロールまたはAccountingAdminロールに属さなければ,[削除]ボタン(BTN_DELETEボタン)と[手動請求書一斉作成]ボタン(BTN_MAKEBILLボタン)を淡色表示し,その後,先に実装しておいたRefreshDataプロシージャ(List 7-181)とSetFieldListプロシージャ(List 7-183)を順に呼び出す。呼び出された各プロシージャは,データグリッドの内容を更新したり(RefreshDataプロシージャ),列見出しを検索用コンボボックスに設定したり(SetFieldListプロシージャ)する処理を実行することになる。

Prev 123/134 Next