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

7.6.2 入庫情報の新規登録と編集
●入庫情報の新規登録
 前置きが長くなったが,入庫情報の新規登録から実装する。まずは,FormEditStockフォームにList 7-95で示すNewStockプロシージャを実装する。

 List 7-95NewStockプロシージャは,先にList 7-94で実装しておいたFillComboプロシージャを呼び出し,その時点で登録されている製品の一覧をCOMBO_PRODUCTコンボボックスに設定したのち,各テキストボックスを空文字に設定し,フォームを初期化するというだけのものである。

 なお,7行目にあるように,FillComboプロシージャの引数には-1を渡している。これは,どの製品情報も選択しない状態にしたいためである。先に説明したとおり,FillComboプロシージャは,引数で指定された製品番号と合致する製品を選択状態として表示する。製品番号は必ず正になるよう在庫情報テーブルを構築したから(「3.2.6 在庫の処理」を参照),引数に-1を指定した場合,その製品番号と合致する製品はあり得ないことになる。この場合,FillComboプロシージャは,製品一覧をCOMBO_PRODUCTコンボボックスに設定したのち,どの製品も選択しない状態にするということになる。

 ところで,18行目で設定しているグローバル変数StockIDは,その時点で編集中の入庫情報の入出庫番号を格納する変数とし,新規登録の際には-1を格納するものと取り決める。これにより,後述する[OK]ボタンが押されたときの処理において,グローバル変数StockIDが-1であるかどうかによって,新規登録なのか既存の入庫情報の編集であるのかを判断する。具体的な処理については,「●[OK]ボタン,[キャンセル]ボタンが押されたときの処理」にて説明する。

 FormStockフォーム(Fig.7-71)でユーザーが[新規]ボタン(BTN_NEWボタン)を押したときには,このNewStockプロシージャを呼び出してFormEditStockフォームを初期化したのち,FormStockプロシージャを呼び出すことにする。その具体的な実装は,List 7-96のようになる。

 List 7-96では,3行目でFormEditStockフォームのNewStockプロシージャを呼び出したのち,4行目でShowメソッドを使ってFormEditStockフォームをモーダルウィンドウとして表示している。そのあとの6行目以降は,DGrid_Stockデータグリッドの内容を更新し,追加された入庫情報をカレント行にするための処理となっている。

Prev 84/134 Next