Visual LANSA フレームワーク ガイド > チュートリアル > VLF-WIN アプリケーションのチュートリアル > VLF010WIN - ミニ・フィルターの作成 > ステップ 2. ミニ・フィルターのコード記述
ステップ 2. ミニ・フィルターのコード記述

このステップでは、ミニ・フィルターのコードを記述します。ミニ・フィルターにはコード ウィザードがないので、フィルターのコードを手動で記述する必要があります。

1.   このフィルターの [ソース] タブを表示します。

2.   次のステートメントをコンポーネントの定義の後に追加します。

Def_List Name(#Save_Keys)   Fields(#xEmployeeSurname) Type(*Working) Entrys(1)

 

Save_Keys 作業リストが、select ループによって上書きされたキー値を保存するのに使用されます。

 

3.   次に uInitialize メソッド・ルーチンを追加します。

Mthroutine Name(uInitialize) Options(*Redefine)

#COM_OWNER.avMiniFilter := true

#COM_OWNER.avMiniFilterpanel <= #PANEL1

Endroutine

 

  

これで、コードは以下のようになります。

4.   次に、xEmployeeSurname フィールドの KeyPress イベントを処理するイベント・ルーチンを追加します。このイベントは、Enter キーが押されると実行されます。

Evtroutine Handling(#xEmployeeSurname.KeyPress) Options(*NOCLEARERRORS *NOCLEARMESSAGES) Keycode(#keycode)

If ('#keycode.value = Enter')

 

Endif

Endroutine

 

 

5.   Enter キーが押されると、select ループによって上書きされた現在のキー値が保存されます。

Inz_List #Save_Keys 1

 

6.   インスタンスリストの更新がまもなく開始され、チェックボックスが選択されている場合にはその後インスタンスリストがクリアされることを指定します。

Invoke #avListManager.BeginListUpdate

If '#Clear_List.ButtonState = Checked'

Invoke #avListManager.ClearList

Endif

  

7.   次に、検索条件に一致する社員を選択し、ビジュアル識別子を設定します。その後、エントリーをインスタンスリストに追加します。

Select Fields(#xEmployeeIdentification #xEmployeeSurname) From_File(XEMPLOYEE2) With_Key(#xEmployeeSurname) Nbr_Keys(*Compute) Generic(*yes)

Invoke Method(#avListManager.AddtoList) Visualid1(#xEmployeeIdentification) Visualid2(#xEmployeeSurname) Akey1(#xEmployeeIdentification)

Endselect 

8. 最後に、インスタンスリストの更新が完了したことを示し、保存済みのキー値を復元します。

Invoke #avListManager.EndListUpdate

Get_Entry 1 #Save_Keys

 

完成したイベント・ルーチンは、次のようになります。

 

9.   フィルターをコンパイルします。