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

7.7.6 絞り込み処理
●絞り込みの設定処理
 そこで,List 7-136で示すSetFilterプロシージャ,ならびに[OK]ボタン(BTN_OKボタン)と[キャンセル]ボタン(BTN_CANCELボタン)が押されたときの処理を,それぞれFormSlipFilterフォームに実装する。

 List 7-136は,すでに「7.6.5 絞り込み処理」にて実装したFormStockFilterフォームのSetFilterプロシージャ(List 7-105)とほぼ同等である。Business.SlipコンポーネントのGetSlipメソッドに渡す予定の引数をこのプロシージャに渡すと,その引数に渡された絞り込み設定の状態に合わせるようにFormSlipFilterフォームをモーダル表示する。そして,ユーザーが[OK]ボタンを押すと,FormSlipFilterフォームでユーザーが選択した設定と合致するように渡された引数の内容を書き換え,プロシージャから戻るという機能を備えている。

 FormSlipFilterフォームのSetFilterプロシージャ(List 7-136)と,すでに実装したFormStockFilterフォームのSetFilterプロシージャ(List 7-105)との違いはほとんどない。しかし,大きな違いもある。FormSlipFilterフォームは,COMBO_CUSTOMERコンボボックスで登録されている顧客のうち1つを選択するというユーザーインタフェースになっているために,その処理が増えている。具体的には,List 7-136の189〜239行目にあるFillComboプロシージャが,その時点で登録されているすべての顧客(ただし削除ずみのものは除く)の名前をCOMBO_CUSTOMERコンボボックスに登録するという処理部分である。また,List 7-136の253〜259行目にあるCHK_CUSTOMER_Clickプロシージャは,CHK_CUSTOMERチェックボックス([下記の顧客の絞る]チェックボックス)がチェックされたときにCOMBO_CUSTOMERコンボボックスを通常表示,非チェック状態となったときにCOMBO_CUSTOMERコンボボックスを淡色表示し,ユーザーが顧客を選択できないようにするための処理である。

 さて,ユーザーがFilterSlipフォーム(Fig.7-86)の[絞り込み設定]ボタン(BTN_FILTERボタン)を押したときには,List 7-136で実装したFormStockFilterフォームのSetFilterプロシージャを呼び出せばよい。その実装はList 7-137のようになる。

 また,[絞り込み]チェックボックス(CHK_FILTERチェックボックス)が有効である場合には,絞り込み条件を適用してデータグリッドの内容を更新するよう,List 7-138のプログラムを実装しておく。

Prev 107/134 Next