Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > 上級フィルター・スタイル > ミニ・フィルター > サンプル・コード > WAM ミニ・フィルター用 RDMLX
WAM ミニ・フィルター用 RDMLX

* ================================================================================

* 記述 ...:ミニ フィルター (簡素)

* ================================================================================

Function Options(*DIRECT)

Begin_Com Role(*EXTENDS #PRIM_WAM) Layoutweblet('vlf_layout')

 

*  フィルターの標準宣言

 

Define_Com Class(#vf_sw100) Name(#avFrameworkManager)

Define_Com Class(#vf_aw007) Name(#ThisFilter) Reference(*Dynamic)

Define_Com Class(#vf_lw002) Name(#avListManager) Reference(*Dynamic)

Define_Com Class(#fp_in001) Name(#FastPart) Reference(*Dynamic)

 

*  VL フレームワーク・マップ・フィールド <変更不可>

 

Web_Map For(*both) Fields((#VF_FRAMEI *private) (#VF_FRAMEW *private) (#VF_FRAMES *private) (#VF_ELXTOF *private) (#VF_ELXN01 *private) (#VF_ELXN02 *private) (#VF_ELXN03 *private) (#VF_ELXN04 *private) (#VF_ELXN05 *private) (#VF_ELXN06 *private) (#VF_ELXN07 *private) (#VF_ELXN08 *private) (#VF_ELXN09 *private) (#VF_ELXN10 *private) (#VF_ELXA01 *private) (#VF_ELXA02 *private) (#VF_ELXA03 *private) (#VF_ELXA04 *private) (#VF_ELXA05 *private) (#VF_ELXA06 *private) (#VF_ELXA07 *private) (#VF_ELXA08 *private) (#VF_ELXA09 *private) (#VF_ELXA10 *private) (#VF_ELMETA *private))

 

*  すべての VLF WAMフィルターおよびコマンド・ハンドラーにより使用される標準 Webroutine。 Webroutine 名は変更不可。このルーチンを使用して WAM イベントを登録

 

Webroutine Name(UHandleEvent)

 

*  標準 WAM 初期化

 

* 注:ミニ・フィルター用のイベント(以下)はフレームワークで事前登録されているため、登録の必要はありません。

* uWAMEvent_21 --> mini filter button ONE was clicked

* uWAMEvent_22 --> mini filter button TWO was clicked

* uWAMEvent_23 --> mini filter button THREE was clicked

 

#avFrameworkManager.avInitializeWAM Type(FILTER) Invoker(#com_owner) Listmanager(#avListManager) Filtermanager(#ThisFilter) Fastpartmanager(#FastPart)

 

#avFrameworkManager.avHandleWAMEvent Anchorblock(#vf_framew) Event(#vf_event) Designmode(#vf_framed) Skin(#VF_Frames) Metatag(#vf_elmeta) Tof(#vf_elxtof) N01(#vf_elxn01) N02(#vf_elxn02) N03(#vf_elxn03) N04(#vf_elxn04) N05(#vf_elxn05) N06(#vf_elxn06) N07(#vf_elxn07) N08(#vf_elxn08) N09(#vf_elxn09) N10(#vf_elxn10) A01(#vf_elxA01) A02(#vf_elxA02) A03(#vf_elxA03) A04(#vf_elxA04) A05(#vf_elxA05) A06(#vf_elxA06) A07(#vf_elxA07) A08(#vf_elxA08) A09(#vf_elxA09) A10(#vf_elxA10) Ssiname(#VF_FRAMEI)

 

Endroutine

 

*  フィルターの初期化処理

 

Evtroutine Handling(#avFrameworkManager.uexecute) Options(*noclearmessages *noclearerrors)

 

* このフィルターをミニ・フィルターとしてアクティブ化

 

* このフィルターは、フレームワーク識別バー (ツールバーの下) の検索フィールドと検索ボタンを使用して、

* ユーザーとのやり取りを行います。このフィルターは表示されません。

 

* 注: これはこのビジネス・オブジェクト専用の唯一のフィルターでなければいけません。

 

* ミニ・フィルターの 1 つの検索フィールドと 1 つの検索ボタンを有効化。必要に応じてキャプションや幅を指定。

 

Set Com(#thisfilter) Avminifilter(true) Avminifiltfield1(true) Avminifiltfldcapwid1(250) Avminifiltfldcap1(*MTXTDF_SURNAME) Avminifiltfldwid1(350) Avminifiltbutton1(true) Avminifiltbuttoncap1(*MTXTDF_SEARCH) Avminifiltbuttonwid1(150)

 

Endroutine

 

Evtroutine Handling(#avFrameworkManager.uWAMEvent_21) Options(*noclearmessages *noclearerrors) Value1(#Val1)

 

* フレームワーク識別バーの検索フィールドにユーザーが入力さいた値は、このイベント・ルーチンの Value1 パラメータに提供されます。

#Surname := #Val1.UpperCase

 

* インスタンスリスト更新を開始。インスタンスリストをクリア

#avListManager.BeginListUpdate

#avListManager.ClearList

 

* ユーザー指定の検索値に基きインスタンスリストを埋める

Select Fields(#SURNAME #GIVENAME #EMPNO #PHONEHME #ADDRESS1 #POSTCODE) From_File(PSLMST2) With_Key(#SURNAME) Generic(*YES)

Execute Subroutine(ADDLIST)

Endselect

* インスタンスリスト更新完了

#avListManager.EndListUpdate

 

Endroutine

 

* ================================================

* SUBROUTINE: インスタンスリストにエントリー追加

* ================================================

Subroutine Name(ADDLIST)

* Build up visual identifier

 

#Fullname := #Givename + " " + #Surname

 

* ユーザーに定義された識別プロトコルを使って、インスタンスリストに

* 追加

 

* =====================

* ビジュアル識別子

* =====================

* VisualID1 = 社員番号

* VisualID2 = 名前 (#GiveName) と姓(#SurName) を

* 連結させたもの

* ===========================

* プログラム識別子

* ===========================

* AKey1 = 社員番号

* ====================================================

* インスタンスリスト・マネージャーの追加列

* ====================================================

* AColumn1 = 電話番号 (自宅)

* AColumn2 = 住所 1

* NColumn1 = 郵便番号 (Zip)

#avListManager.addToList Visualid1(#Empno) Visualid2(#Fullname) Akey1(#Empno) Acolumn1(#Phonehme) Acolumn2(#Address1) Ncolumn1(#Postcode)

 

Endroutine

 

End_Com