You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

[ |../../index.htm#lansa/lansa048_2790.htm]
Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > 上級フィルター・スタイル > ミニ・フィルター > サンプル・コード > Windows ミニ・フィルター用 RDML

Windows ミニ・フィルター用 RDML


================================================================================ * タイプ            :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
 
[ |../../index.htm#lansa/lansa048_2790.htm]

  • No labels