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

head2.gif 7.6.5 雑多な処理
 以上で,ほとんどの処理は実装した。積み残しである検索機能と印刷機能などを実装してしまえば,在庫管理処理の実装は完了となる。

●カレント行が移動したときの処理
 まずは,DGrid_Stockデータグリッドにおいて,カレント行が移動したときの処理を実装する。

 FormStockフォーム(Fig.7-71)に配置した各種ボタンは,カレント行が指す入出庫情報がどのような状態になっているのかに応じて,淡色表示と通常表示とを切り替える。

カレント行が空か出庫情報を示すものであるとき
 カレント行が空であるか出庫情報を示すレコード(NUMBERフィールドの値が負であるもの)である場合には,[編集]ボタン(BTN_EDITボタン),[削除]ボタン(BTN_DELETEボタン),[入庫施行]ボタン(BTN_DUEボタン),[入庫施行取消]ボタン(BTN_CANCELDUEボタン)を淡色表示とする。
 
削除権限がないとき
 削除権限がないとき,つまり,AllAdminロール,Productsロール,ProductsAdminロールのいずれにも属していないときは,[削除]ボタン(BTN_DELETEボタン)を淡色表示とする。
 
カレント行が削除ずみであるとき
 カレント行が削除ずみであるときには,[編集]ボタン(BTN_EDITボタン)を淡色表示にする。さらに,復帰権限があるとき,つまり,AllAdminロールまたはProductsAdminロールのいずれかに属するときは,[復帰]ボタン(BTN_UNDELETEボタン)を通常表示とし,そうでないときには淡色表示とする
 
入庫まえであるとき
 カレント行が入庫まえであり,かつ入庫施行権限がある(AllAdminロール,Productsロール,ProductsAdminロールのいずれかに属する)ときには,[入庫施行]ボタン(BTN_DUEボタン)を通常表示とし,そうでなければ淡色表示とする。
 
入庫ずみであるとき
 カレント行が入庫ずみであり,かつ 入庫施行取消権限がある(AllAdminロールまたはProductsAdminロールのいずれかに属する)ときは,[入庫施行取消]ボタン(BTN_CANCELDUEボタン)を通常表示,そうでなければ淡色表示とする。

 以上の処理をするよう,DGrid_Stockデータグリッドに結び付けられているADODB.RecordsetオブジェクトのMoveCompleteイベントを実装したものが,List 7-109である。

●[最新の情報に更新]ボタンが押されたときの処理
 ユーザーが[最新の状態に更新]ボタン(BTN_REFRESHボタン)を押したときには,DGrid_Stockデータグリッドの内容を更新する。それには,List 7-88で実装しておいたRefreshDataプロシージャを呼び出せばよい。その実装は,List 7-110のようになる。

●検索処理
 ユーザーが[検索]ボタン(BTN_SEARCHボタン)を押したときには,入力された条件と合致するレコードをカレント行にする。具体的には,List 7-111のように実装する。処理内容は,「7.4.6 顧客の検索」で実装したBTN_SEARCH_Clickプロシージャ(List 7-34)と同じなので,ここでの説明は割愛する。

●印刷処理
 ユーザーが[印刷]ボタン(BTN_PRINTボタン)を押したときには,DGrid_Stockデータグリッドに記載されている内容を印刷する。そのためには,「7.4.7 顧客情報の印刷処理」で実装したFormPrintPreviewフォームのSetTitleプロシージャ(List 7-36)を呼び出せばよい。その実装は,List 7-112のようになる。

●[表示項目]ボタンが押されたときの処理
 ユーザーが[表示項目]ボタン(BTN_VIEWボタン)を押したときには,FormSetGridフォーム(Fig.7-31)を表示し,どの列をデータグリッドコントロールに表示するのかをユーザーが選択できるようにする。そのためには,[表示項目]ボタンが押されたときにFormSetGridフォームのSetColumnプロシージャ(List 7-21)を呼び出す。具体的には,List 7-113のようになる。

Prev 93/134 Next