この特集のトップページへ
>
Chapter 7:プレゼンテーション層の構築
●絞り込みの条件
実際の実装に入るまえに,ここで設定することができる絞り込みについてまとめておこう。
すでに「○データグリッドコントロールの内容の更新」で説明したように,入出庫情報を含むADODB.RecordsetオブジェクトをDGrid_Stockデータグリッドと結び付けるRefreshDataプロシージャ(List 7-88)では,Business.ProductコンポーネントのGetStoragesメソッド(List 6-89)を呼び出すときに,g_FilterFlag,g_startDate,g_endDate,gStartDueDate,g_endDueDateという変数を引数に指定するようにした(22行目)
Set g_objRec = _ objProduct.GetStorages( _ g_FilterFlag, g_startDate, _ g_endDate, g_startDueDate, _ g_endDueDate)
ここで,各引数の意味について再度確認しておく。
まず,g_startDate,g_endDate,g_startDueDate,g_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_startDate | TXT_DATESTART |
g_endDate | TXT_DATEEND |
g_startDueDate | TXT_DUESTART |
g_endDueDate | TXT_DUEEND |
次に,g_FilterFlag変数の内容である。この変数は,Table 7-31に示すFILTER_STOCK列挙型(List 6-87)の組み合わせ(和)を指定するフラグになっている。
Table 7-31 FILTER_STOCK列挙型
定数 | 値 | 意味 |
---|---|---|
FILTER_STOCK_ALL | 0 | 絞り込み条件なし |
FILTER_STOCK_OWNER | 1 | 自分が登録したレコードだけに絞り込む |
FILTER_STOCK_INONLY | 2 | 入庫レコードだけに絞り込む(FILTER_STOCK_OUTONLYとの組み合わせは不可) |
FILTER_STOCK_OUTONLY | 4 | 出庫レコードだけに絞り込む(FILTER_STOCK_INONLYとの組み合わせは不可) |
FILTER_STOCK_DUEONLY | 8 | 施行ずみのものだけに絞り込む(FILTER_STOCK_NODUEONLYとの組み合わせは不可) |
FILTER_STOCK_NODUEONLY | 16 | 施行まえのものだけに絞り込む(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_INONLYとFILTER_STOCK_OUTONLYのどちらのフラグも立っていないときに選択状態とする。
- OPT_DUEONLYラジオボタン
-
FILTER_STOCK_DUEONLYのフラグが立っていれば選択状態とする。
- OPT_NODUEONLYラジオボタン
-
FILTER_STOCK_NODUEONLYのフラグが立っていれば選択状態とする
- OPT_DUENOTラジオボタン
- FILTER_STOCK_DUEONLYとFILTER_STOCK_NODUEONLYのどちらのフラグも立っていないときに選択状態とする。
以上のように,Business.ProductコンポーネントのGetProductメソッドを呼び出すときに使う変数と,FormStockFilterフォームとを割り当てることで,ユーザーがFormStockFilterフォームで設定した絞り込み条件を使い,その条件と合致するものだけをFormStockフォーム(Fig.7-71)のDGrid_Storageデータグリッドに表示するという機能を実現することができる。つまり,FormStockFilterフォームでは,ユーザーが選択した情報に応じてFormStockフォームのg_filterFlag,g_startDate,g_endDate,g_startDueDate,g_endDueDateという各変数の内容を設定する処理をするということになる。
90/134 |