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

7.6.5 絞り込み処理
●絞り込みの設定処理
 以上の処理を踏まえたうえで,絞り込みの設定処理を実装してゆこう。ここではまず,List 7-105に示すSetFilterというプロシージャをFormStockFilterフォームに実装する。

 List 7-105SetFilterプロシージャは,FormStockフォーム(Fig.7-71)で[絞り込みの設定]ボタン(BTN_FILTERボタン)を押したときに,次の書式で呼び出されるものとする(その実装はすぐのちに説明する)。

FormStockFilter.SetFilter _
  g_FilterFlag, _
  g_startDate, _
  g_endDate, _
  g_startDueDate, _
  g_endDueDate

 SetFilterプロシージャは,g_FilterFlagg_startDateg_endDateg_startDueDateg_endDueDateという各変数の内容を受け取り,その時点の絞り込みの設定情報をFormStockFilterフォームに設定する。この処理部が,17〜67行目である。先に説明したとおり,この部分は,対応するテキストボックスやラジオボタン,チェックボックスの状態をその時点で設定されている絞り込み値に合わせるという機能を備えている。たとえば,18〜23行目では,受け取った絞り込みフラグのFILTER_STOCK_OWNERフラグが立っていれば,CHK_OWNERチェックボックス([自分が登録した入庫情報のみに絞る]のチェックボックス)にチェックを付けるといった処理になっている。

 FormStockFilterフォーム上のテキストボックスやラジオボタン,チェックボックスを設定したら,71行目にあるようにShowメソッドを呼び出して,FormStockFilterフォームをモーダルウィンドウとして表示する。これにより,ユーザーがモーダルウィンドウを閉じるまで72行目以降の処理には進まなくなる。

 ただし,そのまえの70行目において,グローバル変数OkFlagFalseに設定する。グローバル変数OkFlagは,ユーザーが[OK]ボタン(BTN_OKボタン)を押したならばTrue,そうでなければFalseとする変数と取り決める。[OK]ボタンを押したときの処理ならびに[キャンセル]ボタン(BTN_CANCELボタン)を押したときの処理は,List 7-106のように実装する。List 7-106を見るとわかるように,[OK]ボタンを押したときには,グローバル変数OkFlagTrueにして自分自身を閉じる。これに対して,[キャンセル]ボタンを押したときには,グローバル変数OkflagFalseにして自分自身を閉じる。これにより,List 7-105の72行目以降の処理に戻ったときに,グローバル変数Okflagの値を調べることで,ユーザーが[OK]ボタンを押したかどうかを判定できるようになる。

 さて,List 7-105の72行目以降は,ユーザーが[OK]ボタンを押してウィンドウを閉じたときに,SetFilterプロシージャで受け取った変数にウィンドウ上の設定を反映させる処理部である。たとえば,79〜82行目の場合,CHK_OWNERチェックボックス([自分が登録した入庫情報のみに絞る]のチェックボックス)にチェックが付いていたならば,絞り込み条件としてFILTER_STOCK_OWNERのフラグを立てる,といった処理をしている。72行目以降の処理により,ユーザーが選択した状態と合致するように,引数に渡された変数の内容が呼び出し元に反映される。つまり,g_FilterFlagg_startDateg_endDateg_startDueDateg_endDueDateという各変数の内容が,ユーザーが設定した絞り込み条件と合致するように置き換わるのである。

Prev 91/134 Next