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

7.6.2 入庫情報の新規登録と編集
●[OK]ボタン,[キャンセル]ボタンが押されたときの処理
 以上の実装によって,ユーザーがFormStockフォーム(Fig.7-71)で[新規]ボタンや[編集]ボタンを押したときにFormEditStockフォーム(Fig.7-74)が表示されるようになった。あとは,FormEditStockフォームの[OK]ボタン(BTN_OKボタン)や[キャンセル]ボタン(BTN_CANCELボタン)が押されたときの処理を実装すればよい。

 まず,[キャンセル]ボタンが押されたときの処理だが,これは単純にフォームを閉じるだけである。実装は,List 7-99のようになる。これについてはとくに問題ないだろう。

 次に,[OK]ボタンが押されたときの処理を実装する。すでに説明したように,グローバル変数StockIDには,入庫情報が新規に登録されるときには-1,そうでなければ編集対象となる入庫情報の入出庫番号が格納されている。そこで,グローバル変数StockIDが-1であるときには入出庫情報を追加し,そうでなければ入出庫情報を更新するという場合分けが必要となる。実際にこの処理を実装すると,List 7-100のようになる。

 List 7-100では,まず7〜12行目の処理によって,ユーザーがCOMBO_PRODUCTコンボボックスで選択している製品の製品番号をPRODUCTID変数に格納するという処理をする。すでに少し説明したように,コンボボックスのListIndexプロパティには,ユーザーが選択している項目のインデックス番号が格納されている。ListIndexプロパティが-1のときには,ユーザーはどの項目も選択していない。そこで,7〜10行目では,ListIndexプロパティが-1であるかどうかを調べ,-1,つまりユーザーがどの製品も選択していなかったならば,エラーメッセージを表示している。12行目では,ItemDataプロパティの値をPRODUCTID変数に格納するという処理をしている。これは,すでにList 7-94に示したFillComboプロシージャの処理により,ItemDataプロパティには製品番号が格納されているからである。

 19〜27行目が,新しく入庫情報を追加したり,既存の入庫情報を編集したりする処理となる。新規登録時には,21行目にあるようにBusiness.ProductコンポーネントのAddStorageメソッド(List 6-71)を使い,既存の入庫情報の編集時には,25行目にあるようにUpdateStorageメソッド(List 6-81)を使うことで,処理を実現している。

Prev 86/134 Next