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

6.3.5 在庫の処理
●入出庫予定の一覧取得

○データオブジェクトの実装
 さて,説明はこれぐらいにして,先に型だけ示したDataObj.StockコンポーネントのGetRecordsメソッドを実装する。実装したプログラムを示すと,List 6-88のようになる。

 List 6-88の40〜96行目では,引数に指定された条件を判定し,条件を絞り込むWHERE句の条件式を次々と加えるという処理をしている。そして,104行目で在庫情報テーブルと製品情報テーブルを結合した結果を得るためのSELECT文を発行し,閉じたADODB.Recordsetオブジェクトを返している。

 40〜96行目のうち,日付による制限を加えているのが63〜91行目である。ここでは与えられた日付の引数がNullでないことを確認してから,IsDate関数を使って正しい日付書式で渡されたかどうかを確認している。そして,FormatDateTime関数を使って日付を文字列に変換し,WHERE句の条件式として利用している。

○ビジネスロジックの実装
 次に,ビジネスロジックを実装する。これはFig.6-71にも示したように,プレゼンテーション層とデータオブジェクトとを中継するだけとする。具体的には,List 6-88に示したGetRecordsメソッドを呼び出すだけのものである。この機能を,Business.ProductコンポーネントにGetStoragesという名前のメソッドとして実装すると,List 6-89のようになる。

 なお,List 6-89の40〜51行目にあるように,呼び出したユーザーがProductsAdminロールまたはAllAdminロールに属しているならば,削除ずみのものも含めたレコードを取得するようにしている。そうでないならば,削除ずみのものは含まれないように実装した。

prevpg.gif Chapter 6 50/92 nextpg.gif