ステップ3. ルーチンを追加してEMPLOYEE_CHANGEDイベントをリスンする

Visual LANSA

ステップ3. ルーチンを追加してEMPLOYEE_CHANGEDイベントをリスンする


このステップでは、Employeesフィルターを変更してEMPLOYEE_CHANGEDイベントをリスンします。

1.    EmployeesフィルターiiiCOM04を探して開きます。

2.    [ソース]タブを表示します。

3.    EMPLOYEE_CHANGEDイベントをUHandleEvent webroutineで登録します。

 

Invoke Method(#avFrameworkManager.avRegisterEvent) Named(EMPLOYEE_CHANGED) Signalaswamevent(2)

 

UHandleEventは、次のようになります。

 

4.    WAMソースの最後までスクロールし、EMPLOYEE_CHANGEDイベント・シグナルをリスンするイベント・ルーチンを追加します。

Evtroutine Handling(#avFrameworkManager.uWAMEvent_2) Withid(#eventid) WithAinfo1(#Ainfo1) Options(*noclearmessages *noclearerrors)

 

Endroutine

  

5.    イベント・ルーチンで、最初にコードを追加してイベントIDを確認します。

If '#EventId.Value = EMPLOYEE_CHANGED'

 

Endif

 

6.    selectループによって実行された上書きから現在のキー値を保存します。

 

Inz_List #Save_Keys 1

 

 

7.    通知イベントによって渡される値をEMPNOフィールドに割り当てます。

 

#EmpNo := #AInfo1

 

 

8.    インスタンス・リストの更新を開始します。

 

Invoke Method(#avListManager.BeginListUpdate)

 

 

9.    更新された社員の詳細を取得します。

 

FETCH FIELDS(#SURNAME #GIVENAME #EMPNO) FROM_FILE(PSLMST) WITH_KEY(#EMPNO)

 

 

10.    インスタンス・リストのエントリーを更新します。

 

Use Builtin(BCONCAT) With_Args(#SURNAME #GIVENAME) To_Get(#FULLNAME)

Invoke #avListManager.AddtoList Visualid1(#EMPNO) Visualid2(#FULLNAME) AKey1(#EMPNO)

 

 

11.    インスタンス・リストの更新を完了します。

 

Invoke Method(#avListManager.EndListUpdate)

 

 

12.    最後に、保存したキー値に戻します。

 

Get_Entry 1 #Save_Keys

 

 

完成したコードは、次のようになります。

13.    フィルターをコンパイルしてチェックインします。