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

head2.gif7.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フォームの画面構成
fig7_91

●絞り込みの条件
 すでに「○データグリッドコントロールの内容の更新」で説明したように,伝票の情報をデータグリッドコントロールに表示するときには,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_CREATING1作成中の伝票を含む
FILTER_SLIP_REJECTED2却下されている伝票を含む
FILTER_SLIP_REQUESTINGCONSENT4承認依頼中の伝票を含む
FILTER_SLIP_CONSENTED8承認ずみの伝票を含む
FILTER_SLIP_SEND16発送ずみの伝票を含む
FILTER_SLIP_ACCOUNTED32経理処理ずみの伝票を含む
FILTER_SLIP_FINISH64すべての処理が完了した(請求書が作成された)伝票を含む

 つまり,FormSlipFilterフォーム(Fig.7-91)に配置したチェックボックスやテキストボックスとGetSlipsメソッドの各引数との対応はTable 7-38のようになる。

Table 7-38 FormSlipFilterフォームの各コンポーネントとGetSlipsメソッドの引数との対応
FormSlipFilterフォーム上のコンポーネントGetSlipsメソッドの引数
CHK_CREATINGfilterSlipFILTER_SLIP_CREATINGフラグ
CHK_REQUESTINGCONSENTfilterSlipFILTER_SLIP_RESUESTINGCONSENTフラグ
CHK_CONSENTEDfilterSlipFILTER_SLIP_CONSENTEDフラグ
CHK_REJECTEDfilterSlipFILTER_SLIP_REJECTEDフラグ
CHK_SENDfilterSlipFILTER_SLIP_SENDフラグ
CHK_ACCOUNTEDfilterSlipFILTER_SLIP_ACCOUNTEDフラグ
CHK_FINISHfilterSlipFILTER_SLIP_FINISHフラグ
TXT_startMADEDATEstart_MADEDATE
TXT_endMADEDATEend_MADEDATE
TXT_startDELIVERDATEstart_DELIVERDATE
TXT_endDELIVERDATEend_DELIVERDATE
CHK_CUSTOMERCustomerIDが-1のときチェック,そうでないとき非チェック状態
COMBO_CUSTOMERCustomerIDが-1でないとき,顧客番号としてCustomerIDを持つ顧客の名前。CustomerIDが-1であるとき淡色表示
CHK_INCLUDEOTHERMADEIncludeOtherMade
CHK_IncludeDeletedIncludeDeleted
Prev 106/134 Next