この特集のトップページへ
>
Chapter 7:プレゼンテーション層の構築
●明細の削除
明細の新規登録処理と編集処理を実装したところで,明細の削除処理を実装する。明細はFormSlipDetailフォーム(Fig.7-92)の[削除]ボタン(BTN_DELETEボタン)が押されたときに削除する。その実装は,List 7-166のようになる。List 7-166では,14行目においてBusiness.SlipコンポーネントのDeleteSlipDetailメソッド(List 6-129)を呼び出すことにより,カレント行となっているレコードを削除することになる。 ●更新履歴の表示
次に,FormSlipDetailフォーム(Fig.7-92)で[更新履歴]ボタン(BTN_HISTORYボタン)が押されたときに,伝票の更新履歴を表示する機能を実装する。本節の冒頭ですでに説明したように[更新履歴]ボタンが押されたときには,その履歴を表形式で表示する(Fig.7-83)。そこでまず,Fig.7-83に示したようなウィンドウを構成するFormSlipHistoryフォームを,Fig.7-99として設計する。FormSlipHistoryフォームは,MDI子ウィンドウではなく,モーダルウィンドウとして表示する。
Fig.7-99 FormSlipHistoryフォームの構成

Fig.7-99を見るとわかるように,FormSlipHistoryフォームはDGrid_Histroyという名前のデータグリッドコントロールとBTN_CLOSEという名前のボタンを含むだけの非常に簡単なフォームである。このうち,DGrid_Historyデータグリッド上に伝票の履歴を表示する。伝票の履歴を表示するためには,Business.SlipコンポーネントのGetSlip_Detailsメソッド(List 6-122)を呼び出して取得したADODB.Recordsetオブジェクトを用いる。そこで,DGrid_Historyデータグリッドの各列のプロパティには,GetSlip_Detailsメソッドで取得したADODB.Recordsetオブジェクトの内容を表示できるように,Table 7-41のとおり設定するものとする。
Table 7-41 DGrid_Historyデータグリッドの各列のプロパティ
| インデックス | キャプション(Caption) | 対応するフィールド(DataField) | 可視(Visible) |
|---|---|---|---|
| 0 | 部署名 | DIVISION | True |
| 1 | 担当者 | PERSON | True |
| 2 | 納入予定日 | DELIVERDATE | True |
| 3 | 納入先 | SENT_ADDR | True |
| 4 | 納入先電話番号 | SENT_TEL | True |
| 5 | 摘要 | MEMO | True |
| 6 | 最終更新者 | LASTUSER | True |
| 7 | 最終更新日 | LASTDATE | True |
ところで,フォームのサイズが変更されたときには,DGrid_Historyデータグリッドの位置や大きさを変更し,フォームいっぱいに広がるようにするとユーザーにとって見やすくなる。そこでFormオブジェクトのResizeイベントの処理を,List 7-167のように実装しておく。
では,FormSlipHistoryフォームに伝票の履歴を表示する処理を実装してゆく。まずは,FormSlipHistoryフォームにList 7-168に示すPutHistoryプロシージャを用意する。
PutHistoryプロシージャは,引数に伝票番号をとり,その伝票番号の履歴をDGrid_Historyデータグリッドに設定してから,FormSlipHistoryフォームをモーダルウィンドウとして表示する。つまり,PutHistoryプロシージャを呼び出せば,FormSlipHistoryフォームに指定した伝票の履歴を表示するという処理を実現できる。
そこで,ユーザーがFormSlipDetailフォーム(Fig.7-92)の[更新履歴]ボタン(BTN_HISTORYボタン)を押したときに,PutHistoryプロシージャが呼び出されるという処理を実装する。この処理は,List 7-169のようになる。
以上の実装によって,ユーザーがFormSlipDetailフォーム(Fig.7-92)の[更新履歴]ボタンを押したときには,FormSlipHistoryフォーム(Fig.7-99)にその伝票の更新履歴が表示されるという処理が実現できたことになる。
ところで,ユーザーがFormSlipHistoryフォームにおいて[閉じる]ボタン(BTN_CLOSEボタン)を押したときには,このフォームを閉じるようにする。その実装は,List 7-170のようになる。
| 115/134 |
