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

7.5.2 製品の新規登録と編集
●製品の新規登録
 それでは,製品の新規登録処理から実装してゆく。

 まずは,FormEditProductフォームにList 7-69に示すNewProductプロシージャを実装する。リストを見ればわかるように,NewProductプロシージャは単純にフォーム上のテキストボックスの中身を空文字または0に設定しているだけである。なお,17行目で使っているグローバル変数PRODUCTIDは,その時点で編集中の製品の製品番号を格納する変数であり,新規登録の際には-1を格納するものと取り決める。これにより,[OK]ボタンが押されたときに,グローバル変数PRODUCTIDが-1であるか否かによって新規登録なのか既存製品の編集であるのかを判断できるようになる。この処理については,あとで詳しく説明する。

 また,FormProductフォーム(Fig.7-67)の[新規]ボタンが押されたときには,List 7-69で示したNewProductプロシージャを呼び出し,フォームの内容を初期化する。具体的な実装については,「●[新規]ボタン,[編集]ボタンが押されたときの処理」にて説明する。

●製品の編集
 同様に,製品の編集フォームの初期化処理も実装しておく。製品を編集するときには,List 7-70に示すEditProductプロシージャを呼び出すものとする。

 EditProductプロシージャは,編集対象となる製品の製品番号を引数にとり,その製品番号と合致する製品の情報をフォーム上のテキストボックスに格納するという機能を備える。指定された製品の製品情報を取得するためには,18行目にあるようにBusiness.ProductコンポーネントのGetProductメソッド(List 6-59)を利用している。

 また,10行目にあるように,グローバル変数PRODUCTIDには,引数として受け取った製品番号を格納する。こうすることで,すぐあとに説明する[OK]ボタンが押されたときの処理では,グローバル変数PRODUCTIDの値を参照して,Business.ProductコンポーネントのUpdateProductメソッドを呼び出し,その対象製品を更新するという作業をする。

 FormProductフォーム(Fig.7-67)の[編集]ボタンが押されたときには,FormProductフォーム上のDGrid_Productデータグリッドが指しているカレント行の製品番号を引数に与えてEditProductプロシージャを呼び出し,フォームの内容を初期化するものとする。具体的な実装については,「●[新規]ボタン,[編集]ボタンが押されたときの処理」にて説明する。

Prev 70/134 Next