この特集のトップページへ
Chapter 6:ビジネスロジックの設計

head2.gif 6.4.4 伝票情報一覧の取得
 次に,伝票情報の一覧を返すメソッドについて考える。

●伝票の絞り込み
 伝票情報の一覧を返すということは,伝票情報テーブル中のレコードをADODB.Recordsetオブジェクトとして返すということである。しかし,全レコードを返していたのでは,データ量が膨大なものになってしまう。そのため,全レコードを返すのではなく,特定の条件に合致する伝票だけを返す絞り込みの機能が必要となる。

 伝票の場合,絞り込みの条件としては,主に次の6つが考えられる。実際にはほかにも,伝票の金額が一定額以上のものだけに絞り込んだり,特定の製品を含むものだけに絞り込んだりといった条件も考えられるが,今回は割愛する。

  1. 顧客による絞り込み

  2. 起票日による絞り込み

  3. 納入予定日による絞り込み

  4. 起票者による絞り込み(自分が起票したレコードのみか,他人が起票したレコードも含むか)

  5. 伝票の状態による絞り込み

  6. 削除フラグの状況による絞り込み(削除ずみのレコードを含むかどうか)

○顧客による絞り込み
 伝票レコードのCUSTOMERIDフィールドには,顧客の顧客番号が格納されている。よって,伝票情報の一覧を返すメソッドに顧客番号を渡す引数を用意すれば,特定の顧客のみに絞り込むことができる。

○起票日による絞り込み
 伝票のレコードのMADEDATEフィールドには,伝票の起票日が格納されている。よって,伝票情報の一覧を返すメソッドに起票日を絞り込む開始日時と終了日時を指定する引数を用意すれば,起票日で絞り込むことができる。

○納入予定日による絞り込み
 伝票レコードに結び付けられている伝票追加情報テーブルのDELIVERDATEフィールドには,納入予定日が格納されている。よって,伝票情報の一覧を返すメソッドに納入予定日を絞り込む開始日時と終了日時を指定する引数を用意すれば,納入予定日で絞り込むことができる。

○起票者による絞り込み
 伝票レコードのMADEUSERフィールドには,伝票を起票したユーザーのアカウント名が格納されている。よって,伝票情報の一覧を得るメソッド側で,メソッドを呼び出したユーザーのアカウント名とMADEUSERフィールドに格納されている値とを比較することによって,自分が起票したものであるかどうかを区別できる。この絞り込みを指定するためには,伝票情報の一覧を得るメソッドに,自分が起票したレコードのみを抽出するか,他人が起票したレコードも含むかを指定するBoolean型の引数を用意すればよい。

○伝票の状態による絞り込み
 伝票の状態は,List 6-105SlipStatus列挙型に示したように7種類ある。よって,伝票情報の一覧を返すメソッドに引数としてSlipStatus列挙型を渡せるようにすれば,伝票の状態で絞り込みむことができそうな気がする。確かにそれでもよいが,その場合には「承認ずみ」または「経理確認ずみ」といった複合条件を指定できない。そのためここでは,List 6-132に示すFILTER_SLIP列挙型を用意し,それをメソッドの引数として指定することにする。FILTER_SLIP列挙型では,複数の条件を指定できるよう,OR演算を使用できるようにしてある。たとえば,承認ずみまたは経理確認ずみという条件を指定したければ,“FILTER_SLIP_CONSENTED Or FILTER_SLIP_ACCOUNTED”(値としては8 OR 32=40)という条件を指定することで対応できる。

○削除フラグの状況による絞り込み
 伝票レコードのDELETEDFLAGフィールドの値がTrueであるものが削除ずみである。よって,伝票情報の一覧を返すメソッドに,DELETEDFLAGフィールドの値がTrueであるものを含むかどうかを指定するBoolean型の引数を用意すれば,削除ずみのレコードを含むかどうかを指定できる。

prevpg.gif Chapter 6 62/92 nextpg.gif