この特集のトップページへ
>
Chapter 7:プレゼンテーション層の構築
7.7.6 絞り込み処理
続いて,表示する伝票を一部の伝票だけに絞り込む機能を実装してゆく。
すでに「7.7.1 伝票管理処理の概要」で説明したように,ユーザーがFormSlipフォーム(Fig.7-86)で[絞り込み設定]ボタン(BTN_FILTERボタン)を押したときには,Fig.7-81で示したウィンドウを表示し,そこで絞り込みの条件を設定できるようにする。そこでまず,Fig.7-81に示したウィンドウをフォームとして作成する。ここではFormSlipFilterという名前のフォームとしてFig.7-91に示すように実装することにしよう。FormSlipFilterフォームは,モーダルウィンドウとして表示させる。
Fig.7-91 FormSlipFilterフォームの画面構成
●絞り込みの条件
すでに「○データグリッドコントロールの内容の更新」で説明したように,伝票の情報をデータグリッドコントロールに表示するときには,Business.Slipコンポーネントに実装したGetSlipsメソッド(List 6-171)を呼び出している。このGetSlipsメソッドの各引数によって,どの伝票に絞り込むのかを設定する。
Public Function GetSlips( _ ByVal start_MADEDATE As Variant, _ ByVal end_MADEDATE As Variant, _ ByVal start_DELIVERDATE As Variant, _ ByVal end_DELIVERDATE As Variant, _ ByVal IncludeOtherMade As Boolean, _ ByVal filterSlip As FILTER_SLIP, _ ByVal IncludeDeleted As Boolean, _ Optional ByVal CustomerID As Long = -1) _ ) As ADODB.Recordset
GetSlipsメソッドの各引数の意味は,次のとおりである。
- start_MADEDATE
-
伝票の作成日による絞り込みの開始日。Nullのときには設定なし。
- end_MADEDATE
-
伝票の作成日による絞り込みの終了日。Nullのときには設定なし。
- start_DELIVERDATE
-
伝票の納入予定日による絞り込みの開始日。Nullのときには設定なし。
- end_DELIVERDATE
-
伝票の納入予定日による絞り込みの終了日。Nullのときには設定なし。
- IncludeOtherMade
-
他人が作成した伝票を含むかどうかのフラグ。Trueのとき含む。Falseのとき含まない。
- filterSlip
-
伝票の状態による絞り込みを設定するFILTER_SLIP列挙型の組み合わせ(和)。意味はTable 7-37のとおり。
- IncludeDeleted
-
削除ずみの伝票を含むかどうかのフラグ。Trueのとき含む,Falseのとき含まない。
- CustomerID
- 特定の顧客に対する伝票のみに絞るならばその顧客の顧客番号を,そうでなければ-1を設定する。
Table 7-37 FILTER_SLIP列挙型
定数 | 値 | 解説 |
---|---|---|
FILTER_SLIP_ALL | &HFFFFFFFF(-1と同じ) | すべての伝票 |
FILTER_SLIP_CREATING | 1 | 作成中の伝票を含む |
FILTER_SLIP_REJECTED | 2 | 却下されている伝票を含む |
FILTER_SLIP_REQUESTINGCONSENT | 4 | 承認依頼中の伝票を含む |
FILTER_SLIP_CONSENTED | 8 | 承認ずみの伝票を含む |
FILTER_SLIP_SEND | 16 | 発送ずみの伝票を含む |
FILTER_SLIP_ACCOUNTED | 32 | 経理処理ずみの伝票を含む |
FILTER_SLIP_FINISH | 64 | すべての処理が完了した(請求書が作成された)伝票を含む |
つまり,FormSlipFilterフォーム(Fig.7-91)に配置したチェックボックスやテキストボックスとGetSlipsメソッドの各引数との対応はTable 7-38のようになる。
Table 7-38 FormSlipFilterフォームの各コンポーネントとGetSlipsメソッドの引数との対応
FormSlipFilterフォーム上のコンポーネント | GetSlipsメソッドの引数 |
---|---|
CHK_CREATING | filterSlipのFILTER_SLIP_CREATINGフラグ |
CHK_REQUESTINGCONSENT | filterSlipのFILTER_SLIP_RESUESTINGCONSENTフラグ |
CHK_CONSENTED | filterSlipのFILTER_SLIP_CONSENTEDフラグ |
CHK_REJECTED | filterSlipのFILTER_SLIP_REJECTEDフラグ |
CHK_SEND | filterSlipのFILTER_SLIP_SENDフラグ |
CHK_ACCOUNTED | filterSlipのFILTER_SLIP_ACCOUNTEDフラグ |
CHK_FINISH | filterSlipのFILTER_SLIP_FINISHフラグ |
TXT_startMADEDATE | start_MADEDATE |
TXT_endMADEDATE | end_MADEDATE |
TXT_startDELIVERDATE | start_DELIVERDATE |
TXT_endDELIVERDATE | end_DELIVERDATE |
CHK_CUSTOMER | CustomerIDが-1のときチェック,そうでないとき非チェック状態 |
COMBO_CUSTOMER | CustomerIDが-1でないとき,顧客番号としてCustomerIDを持つ顧客の名前。CustomerIDが-1であるとき淡色表示 |
CHK_INCLUDEOTHERMADE | IncludeOtherMade |
CHK_IncludeDeleted | IncludeDeleted |
106/134 |