フック一覧 CloseBLcl (画面フック) 前の画面フック 次の画面フック

VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)

CloseBLcl (閉鎖現地前) 画面フックメソッド

 この画面フックメソッドは、主にアプリフレームと呼ばれる画面アプリのための上位フレームワークを設計する方々がお使いになるものです。一般のアプリ開発者の方々は、上位フレームワーク設計者から示された情報があれば、必ずしもここの内容を詳細に知る必要はありません。

役割 (この画面フックメソッドに委託されている処理)

この画面アプリ全体にかかわるファイルまたはデータベースのクローズなどの閉鎖処理を行う。

配置 (ツーピーススタイルの場合にこの画面フックメソッドをどこに配置できるか)

セントラルピースに配置するか、または配置しない。ローカルピースに配置することは禁止されている。

代表的な書き方 (詳しい構文はフックメソッドの書き方を参照)

VB での書き方:
 Friend Function CloseBLcl(パラメタ宣言列) As Boolean
 または
 Friend Function 画面略称_CloseBLcl(パラメタ宣言列) As Boolean

C# での書き方:
 internal bool CloseBLcl(パラメタ宣言列)
 または
 internal bool 画面略称_CloseBLcl(パラメタ宣言列)

Java での書き方:
 boolean CloseBLcl(パラメタ宣言列)
 または
 boolean 画面略称_CloseBLcl(パラメタ宣言列)

なお、フック名としては、CloseBLcl の他に閉鎖現地前を用いることができる。

呼び出される契機 (以下が切っ掛けとなりこのフックメソッドが呼び出される)

アプリ操作者からこの画面に対して EndCm 指示がなされたとき。 項目フックメソッド CloseBLcl よりも後に呼び出される。 画面フックメソッド Close および項目フックメソッド Close よりも前に呼び出される。

EndCm 指示とは、アプリ操作者がボタン Cm_EndCm をクリックすること、またはメニュー項目 Mn_EndCm をクリックすることか、これに相当する操作 (対応するショートカットキーの押下) をすること、または EndCm に対応づけられたファンクションキーを押下することを意味する。

戻り値の意味とデフォルト動作 (戻り値による FormBase への伝言)

FormBase.CLOSEBLCL_Allow (= -1): この画面プログラムの終了を許可する。

FormBase.CLOSEBLCL_Deny (= 0): この画面の終了処理をキャンセルせよ。FormBase は、この伝言を受けると、アプリ操作者からなされた EndCm 指示を無視して、指示がなされなかったかのように振る舞う。つまり、アプリ操作者からなされた EndCm 指示は無効になる。 ただし、プログラムの中で Hide メソッドを発した場合などのように、終了処理のキャンセルが不能な場合には、終了処理は行われることになってしまう。

デフォルト動作: CloseBLcl 画面フックメソッドが組み込まれていない場合の動作は、FormBase.CLOSEBLCL_Allow が設定された場合と同様である。

開始閉鎖許諾チェックオプションをオンにした場合に限って、戻り値の指定が有効となる。このオプションがオフの場合には、戻り値として FormBase.CLOSEBLCL_Allow が指定されたものとみなされる。なお、このオプションは、ダイアログ画面オプションで指定できる。

代行メッセージ (処理の流れに応じて発せられるメッセージ; カスタマイズ可能)

メッセージコード: "ENDCK"

"終了すると、 インプット途中のデータが有効になりません。"

メッセージコード: "ENDCM"

"終了します。"

使用上のヒントと注意事項

特定の項目固有の閉鎖処理は、この画面フックメソッドではなく、項目フックメソッド Close, または CloseBLcl で行ってください。

ローカル側で行う閉鎖処理は、この画面フックメソッドではなく、画面フックメソッド Close,または項目フックメソッド Close で行ってください。

このフックメソッドの中で、プログラムの終了を拒否することにした場合は、適当なメッセージをアプリ操作者に向けて発してから、戻り値を FormBase.CLOSEBLCL_Deny にしてください。

なお、アプリ操作者は、何のメッセージも示されないと、自分の指示どおりにプログラムが終了するものと期待する。このフックメソッドの本来の役割は、この期待に応えてプログラム終了処理を進めることである。

この中でメソッド SetFocusLogically を呼び出した場合には、画面フックメソッド Close の戻り値が FormBase.CLOSE_Deny の場合に限って効果を発揮する。

関連事項

閉鎖処理に関係するフックメソッドには、 画面フックメソッド Close,項目フックメソッド Close,画面フックメソッド CloseBLcl (本フックメソッド),項目フックメソッド CloseBLcl の四つがある。

この画面フックメソッドは、画面フックメソッド OpenALcl と対をなす。

使用例

' 受注トランザクションテーブルをクローズする。
Friend Function 閉鎖現地前(ByVal fB As FormBase) As Boolean
    メインレコード.Disconnect()
    明細レコード.Disconnect()
    ' 
    Return FormBase.CLOSEBLCL_Allow
End Function ' 閉鎖現地前
// 受注トランザクションテーブルをクローズする。
internal bool 閉鎖現地前( FormBase fB ) {
    メインレコード.Disconnect();
    明細レコード.Disconnect();
    // 
    return FormBase.CLOSEBLCL_Allow;
} // 閉鎖現地前
// 受注トランザクションテーブルをクローズする。
boolean 閉鎖現地前( FormBase fB ) {
    メインレコード.Disconnect();
    明細レコード.Disconnect();
    // 
    return FormBase.CLOSEBLCL_Allow;
} // 閉鎖現地前