================================================================================
* タイプ :FILTER
* 祖先 :VF_AC007
* アプリケーション :プログラミング・テクニック (上級)
* ビジネス・オブジェクト:ミニ・フィルター (簡素)
* フィルター : ミニ・フィルター (簡素)
* 注:このフィルターはこのビジネス・オブジェクト専用でなければいけません
* ================================================================================
Begin_Com Role(*EXTENDS #VF_AC007) Height(138) Width(303)
* =============================================================================
* コンポーネント定義
* =============================================================================
* このフィルターは何も表示しません。
* このフレームワー・ミニフィルターは検索ボタンに検索フィールドを提供します。
* このフィルターは、フレームワークの識別バーにあるミニ・フィルターと通信します。
* この通信は、avMiniFiltField1 のようなプロパティや、再定義されたメソッド・ルーチン uMiniFilterButton
* を使って行われます。
* =============================================================================
* メソッド・ルーチン再定義
* =============================================================================
*
* 初期化
*
Mthroutine Name(uInitialize) Options(*REDEFINE)
* ミニ・フィルターをこのビジネス・オブジェクト用に表示させます。
* 注:このフィルターはこのビジネス・オブジェクト専用でなければいけません
set #Com_Owner avMiniFilter(TRUE)
* このミニ・フィルターで1つの検索フィールドと1つの検索ボタンが使用できるようにします。
* 必要に応じて、キャプションや幅を指定してください。
set #Com_Owner avMiniFiltField1(TRUE)
* フィールド全体の幅 (キャプション含む) を 300に設定
set #Com_Owner avMiniFiltFldWid1(300)
set #Com_Owner avMiniFiltFldCap1(*MTXTDF_SURNAME)
* キャプション幅を 200 に設定
set #Com_Owner avMiniFiltFldCapWid1(200)
set #Com_Owner avMiniFiltButton1(TRUE)
set #Com_Owner avMiniFiltButtonCap1(*MTXTDF_SEARCH)
* set #Com_Owner avMiniFiltButtonWid1(200)
* 以下を使って、検索の初期値を渡すこともできます。:
* set #Com_Owner avMiniFiltValue1('指定の検索初期値')
endroutine
*
* ミニ検索パネルから検索の指示を実行
*
Mthroutine Name(uMiniFilterButton) Desc('Handle a mini filter button click') Help('Overwrite this method with your own logic if required.')Options(*REDEFINE)
* Define_Map For(*input) Class(#vf_elnum) Name(#uButton)
* Define_Map For(*input) Class(#vf_elurl) Name(#uValue1) Mandatory(' ')
* Define_Map For(*input) Class(#vf_elurl) Name(#uValue2) Mandatory(' ')
* Define_Map For(*input) Class(#vf_elurl) Name(#uValue3) Mandatory(' ')
Define #Button *dec 1 0
* ユーザーが押したミニ・フィルターのボタンがどれであるかを決定
change #Button #uButton
case #button
when '= 1'
* ユーザーがミニ・フィルターに入力した検索値を取得
USE BUILTIN(UPPERCASE) WITH_ARGS(#UVALUE1) TO_GET(#SURNAME)
* 検索を行い、結果をインスタンスリストに入れる
Invoke Method(#avListManager.BeginListUpdate)
Invoke Method(#avListManager.ClearList)
* 姓の一部またはすべてを使って社員のレコードを名前順に選択し、インスタンスリストに追加
Select Fields(#EMPNO #GIVENAME #SURNAME) From_File(PSLMST2) With_Key(#SURNAME) Generic(*YES)
* フィルター右側のインスタンスリストにエントリー追加
Execute Subroutine(ADDLIST) With_Parms(#SURNAME #GIVENAME #EMPNO)
Endselect
* 更新終了を示す
Invoke Method(#avListManager.EndListUpdate)
endcase
endroutine
* =============================================================================
* サブルーチン
* =============================================================================
*
* フィルター右側のインスタンスリストにエントリー追加
*
Subroutine Name(ADDLIST) Parms(#SURNAME #GIVENAME #EMPNO)
* ビジュアル識別子を生成
Use BConcat (#GiveName #SurName) #FullName
Invoke Method(#avListManager.AddtoList) Visualid1(#Empno) Visualid2(#FullName) Akey1(#Empno)
Endroutine
End_Com