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

head2.gif 7.7.4 伝票情報の削除と復帰
 伝票の新規作成と編集処理の実装を終えたところで,今度は伝票の削除と復帰の処理を実装する。

●伝票の削除
 FormSlipフォーム(Fig.7-86)でユーザーが[削除]ボタン(BTN_DELETEボタン)を押したときには,その時点でカレント行が指している伝票を削除するものとする。ただし,1回目の削除ではDELETEDFLAGフィールドの値をTrueにして削除ずみのマークを付けるだけとし,2回目の削除でレコードそのものを削除することにする。

 伝票を削除するには,Business.SlipコンポーネントのDeleteSlipメソッド(List 6-140)を呼び出せばよい。実際に削除する処理を実装すると,List 7-130のようになる。

 List 7-130で実際に伝票を削除しているのは,35行目にあるDeleteSlipメソッドの呼び出し部分である。それ以外の箇所は,削除したあとにカレント行の位置を再設定するための処理にすぎない。

 なお,伝票の状態が「承認依頼ずみ」以降に進んでいる場合には,DeleteSlipメソッドで伝票を削除できない仕様としたため(「6.4.5 伝票情報の削除」を参照),ユーザーが「承認依頼ずみ」以降の状態にある伝票をカレント行として[削除]ボタンを押したとしても,その伝票は削除されず,実行時エラーが発生することになる(ただし,実行時エラーはトラップされて51行目以降に進むようにしてあるから,ユーザーにはエラーメッセージが表示されるだけで,処理そのものは続行される)。

●伝票の復帰
 次に,いったん削除ずみとした伝票をもとの状態に復元する処理を実装する。このサンプルの場合,FormSlipフォーム(Fig.7-86)の[復帰]ボタン(BTN_UNDELETEボタン)を押したときに,その伝票を復元するものとする。伝票の復帰処理を実行するには,Business.SlipコンポーネントのUndeleteSlipメソッド(List 6-141)を呼び出せばよい。具体的には,List 7-131のようになる。

Prev 103/134 Next