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

7.6.5 絞り込み処理
●絞り込みの条件
 実際の実装に入るまえに,ここで設定することができる絞り込みについてまとめておこう。

 すでに「○データグリッドコントロールの内容の更新」で説明したように,入出庫情報を含むADODB.RecordsetオブジェクトをDGrid_Stockデータグリッドと結び付けるRefreshDataプロシージャ(List 7-88)では,Business.ProductコンポーネントのGetStoragesメソッド(List 6-89)を呼び出すときに,g_FilterFlagg_startDateg_endDategStartDueDateg_endDueDateという変数を引数に指定するようにした(22行目)

Set g_objRec = _ 
  objProduct.GetStorages( _
  g_FilterFlag, g_startDate, _
  g_endDate, g_startDueDate, _
  g_endDueDate)

 ここで,各引数の意味について再度確認しておく。

 まず,g_startDateg_endDateg_startDueDateg_endDueDateは,日付による絞り込み条件であり,次のような意味を持つ。

  • g_startDate
     入庫予定日による絞り込みの開始日(この日を含む)。Nullのときには,入庫予定日の開始日による絞り込みはなし。

  • g_endDate
     入庫予定日による絞り込みの終了日(この日を含む)。Nullのときには,入庫予定日の終了日による絞り込みはなし。

  • g_startDueDate  入庫施行日([入庫施行]ボタンを押した日)による絞り込みの開始日(この日を含む)。Nullのときには,入庫施行日の開始日による絞り込みはなし。

  • g_endDueDate
     入庫施行日([入庫施行]ボタンを押した日)による絞り込みの終了日(この日を含む)。Nullのときには,入庫施行日の終了日による絞り込みはなし。

 これらの4つの引数は,Fig.7-76に示したFormStockFilterフォームにおいて,Table 7-30のように対応させるものとする。

Table 7-30 絞り込み条件に対応する引数とFormStockFilterフォームにおける各コンポーネントとの対応
絞り込み条件に対応する引数FormStockFilterフォームにおける対応するコンポーネント
g_startDateTXT_DATESTART
g_endDateTXT_DATEEND
g_startDueDateTXT_DUESTART
g_endDueDateTXT_DUEEND

 次に,g_FilterFlag変数の内容である。この変数は,Table 7-31に示すFILTER_STOCK列挙型(List 6-87)の組み合わせ(和)を指定するフラグになっている。

Table 7-31 FILTER_STOCK列挙型
定数意味
FILTER_STOCK_ALL0絞り込み条件なし
FILTER_STOCK_OWNER1自分が登録したレコードだけに絞り込む
FILTER_STOCK_INONLY2入庫レコードだけに絞り込む(FILTER_STOCK_OUTONLYとの組み合わせは不可)
FILTER_STOCK_OUTONLY4出庫レコードだけに絞り込む(FILTER_STOCK_INONLYとの組み合わせは不可)
FILTER_STOCK_DUEONLY8施行ずみのものだけに絞り込む(FILTER_STOCK_NODUEONLYとの組み合わせは不可)
FILTER_STOCK_NODUEONLY16施行まえのものだけに絞り込む(FILTER_STOCK_DUEONLYとの組み合わせは不可)

 g_filterFlag変数の内容とFormStockFilterフォームに配置したラジオボタンやチェックボックスとの対応は,次のようにする。

CHK_OWNERチェックボックス
 FILTER_STOCK_OWNERのフラグが立っていればチェック状態,そうでなければ非チェック状態とする。
 
OPT_INONLYラジオボタン
 FILTER_STOCK_INONLYのフラグが立っていれば選択状態とする。
 
OPT_OUTONLYラジオボタン
 FILTER_STOCK_OUTONLYのフラグが立っていれば選択状態とする。
 
OPT_INOUTNOTラジオボタン
 FILTER_STOCK_INONLYFILTER_STOCK_OUTONLYのどちらのフラグも立っていないときに選択状態とする。
 
OPT_DUEONLYラジオボタン
 FILTER_STOCK_DUEONLYのフラグが立っていれば選択状態とする。
 
OPT_NODUEONLYラジオボタン
 FILTER_STOCK_NODUEONLYのフラグが立っていれば選択状態とする
 
OPT_DUENOTラジオボタン
 FILTER_STOCK_DUEONLYFILTER_STOCK_NODUEONLYのどちらのフラグも立っていないときに選択状態とする。

 以上のように,Business.ProductコンポーネントのGetProductメソッドを呼び出すときに使う変数と,FormStockFilterフォームとを割り当てることで,ユーザーがFormStockFilterフォームで設定した絞り込み条件を使い,その条件と合致するものだけをFormStockフォーム(Fig.7-71)のDGrid_Storageデータグリッドに表示するという機能を実現することができる。つまり,FormStockFilterフォームでは,ユーザーが選択した情報に応じてFormStockフォームのg_filterFlagg_startDateg_endDateg_startDueDateg_endDueDateという各変数の内容を設定する処理をするということになる。

Prev 90/134 Next