この特集のトップページへ
>
Chapter 6:ビジネスロジックの設計
6.5.2 承認依頼処理
まずは,承認依頼処理の実装から始めよう。承認依頼処理において,主に必要な処理は次の3つである。
REQ_CONSENTFLAGフィールドの値をTrueに設定
伝票レコードのREQ_CONSENTEDFLAGフィールドの値をTrueに設定し,「承認依頼中」の状態に変更する。在庫の確認
受注された製品の数量を在庫数と比較し,足りるかどうかを確かめる(「3.2.6 在庫の処理」を参照)。受注された製品の数量は,伝票に結び付けられている明細情報テーブル内のレコードに記録されている。在庫の予約
受注された製品の数だけ製品を予約ずみとし,今後追加される伝票によって製品が奪われないようにする(「3.2.6 在庫の処理」を参照)。受注された製品の数は,伝票に結び付けられている明細情報テーブル内のレコードに記載されている。
この3つの処理に必要なメソッドを,順に実装してゆく。
●REQ_CONSENTFLAGフィールドの値をTrueに設定する処理まずは,REQ_CONSENTFLAGフィールドの値をTrueに設定するため,伝票情報テーブルを操作するデータオブジェクトであるDataObj.Slipコンポーネントに,REQ_CONSENTFLAGフィールドの値をTrueにするメソッドを実装する。それには,次のような形のメソッドを実装すればよい。
Public Sub Set_REQ_CONSENTFLAG(ByVal SlipID As Long, _ ByVal flag As Boolean, _ ByVal Comment As Variant) ' SlipIDで指定された伝票番号を持つ伝票の ' REQ_CONSENTFLAGフィールドの値を ' flagで指定された値に変更する。 ' flagの値がTrueであった場合には, ' REQ_CONSENTCOMMENTフィールドの値に ' Commentで指定された文字列を格納する。 ' flagの値がFalseであった場合には, ' Comment引数は無視される End Sub
上記したSet_REQ_CONSENTFLAGメソッドは,SlipID引数に渡された伝票番号を持つ伝票レコードのREQ_CONSENTFLAGフィールドをflag引数で指定された値に変更する。実際に実装したプログラムは,List 6-142のようになる。List 6-142は,REQ_CONSENTFLAGフィールドの値を変更するだけではなく,flag引数の値がTrueのときには次の3つの処理も実行するようになっている。また,DataObj.Historyコンポーネントを使い,履歴を記録する処理もしている。
【flag引数の値がTrueの場合の処理】
REQ_CONSENTDATEフィールドの値を,メソッドが呼び出された日時に設定する
REQ_CONSENTUSERフィールドの値を,メソッドを呼び出したユーザーのアカウント名に設定する
REQ_CONSENTCOMMENTフィールドの値を,Comment引数で指定された値に設定する
ところで,伝票の状態を示すフラグとしては,REQ_CONSENTFLAGフィールド以外に,次の5つのフィールドがある。
- CONSENTEDFLAG
- REJECTEDFLAG
- SENDFLAG
- ACCOUNTINGFLAG
- MADEBILLFLAG
これらのフラグを設定するメソッドも,List 6-142と同じように実装しておこう。実際に実装したものは,List 6-143,List 6-144,List 6-145,List 6-146,List 6-147のようになる。
Chapter 6 67/92 |