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

7.5.4 在庫の調査
●[在庫調査]ボタンが押されたときの処理
 フォームを追加したところで,ユーザーがFormProductフォーム(Fig.7-67)の[在庫調査]ボタン(BTN_CHKSTOCKボタン)を押したときの処理を実装してゆく。

 ユーザーがFormProductフォームの[在庫調査]ボタンを押すと,Fig.7-70に示したFormChkStockフォームを表示することになる。このとき,FormProductフォームからFormChkStockフォームに向かって,どの製品に対する在庫調査なのかを伝える必要がある。そこで,FormChkStockフォームに,List 7-77に示すShowWindowというプロシージャを実装しておく。

 List 7-77ShowWindowプロシージャは,引数に製品番号と製品名をとる。そして,取得した製品名をLABEL_PRODUCTラベルに設定し(8行目),製品番号をグローバル変数g_ProductIDに保存したあと(9行目),最後にShowメソッドを呼び出して自分自身――つまりFig.7-70に示したFormChkStockフォーム――をモーダルウィンドウとして表示する。

 ユーザーがFormProductフォーム(Fig.7-67)の[在庫調査]ボタンを押したときには,List 7-77に示したShowWindowプロシージャを呼び出すようにする。それにより,FormProductフォームからFormChkStockフォームに製品名と製品番号を渡したうえで,FormChkStockフォームがモーダルウィンドウとして表示されるようになる。実際にそのような実装をしたものが,List 7-78である。

●[計算]ボタンが押されたときの処理
 List 7-77ならびにList 7-78の実装によって,ユーザーがFormProductフォーム(Fig.7-67)の[在庫調査]ボタンを押したときにFormChkStockフォーム(Fig.7-70)が表示されるようになった。

 あとは,ユーザーが数量を入力して[計算]ボタンが押されたときの処理を実装すればよい。

 すでにChapter 6の「○個々の在庫を問い合わせる」では,指定された数量がいつまでに揃うかを調べるGetReadyDate_Productメソッド(List 6-155)をBusiness.Productコンポーネントに実装している。そこで,ユーザーが[計算]ボタンを押したときには,このメソッドを利用して入力された数量が揃う日付を調べればよい。実際にこのような処理を実装したものが,List 7-79である。

 List 7-79の18行目では,Business.ProductコンポーネントのGetReadyDate_Productメソッドを呼び出すことで,入力された製品がいつまでに揃うのかを調べている。GetReadyDate_Productメソッドは,将来に渡って指定された数量が揃う見込みがない(入庫予定がない)のであれば,戻り値としてNullを返すように実装した。そのため,22〜26行目の処理では,戻り値がNullである場合には,“入庫予定にそれだけの数量の予定はありません”というメッセージを,そうでなければ戻り値として得た日付を,それぞれTXT_DATEテキストボックスに表示するようにしてある。

●[閉じる]ボタンが押されたときの処理
 最後にFormChkStockフォーム(Fig.7-70)の[閉じる]ボタンが押されたときの処理を実装する。

 [閉じる]ボタンが押されたときには,そのボタン名が示すように,FormChkStockフォームを閉じることになる。そのためには,Hideメソッドを使えばよい。具体的には,List 7-80のような実装となる。

Prev 75/134 Next