Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/lansa048_3145.htm]
Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > インスタンスリストとインスタンスリスト・マネージャー > 高度なインスタンスリスト処理 > RAMPスクリプトからのインスタンスリストの操作

...

Image RemovedImage Added


インスタンスリストの共有コントローラー内の簡略化メソッドを呼び出すことで、フィルターやコマンド・ハンドラーでのインスタンスリストの操作はさらに簡単になります。  これを行うための処理は次の2つのみです。

...

 RAMP 5250 ナビゲーション・スクリプトでは、再利用可能なVLコンポーネントを宣言してそのメソッドを呼び出すことはできませんが、通知イベントを実行できます。したがってこのスクリプトが通知したイベントを「何か」がリッスンしている場合、その「何か」はスクリプトに代わってマネージャー・メソッドを呼び出すことができます。

通常、RAMPスクリプトのイベントをリッスンしているこの「何か」は、フィルターです。このフィルターには次のようなEVTROUTINEが含まれます。
 

     Evtroutine Handling(#Com_owner.avEvent) WithId(#EventId)

...

 WithAInfo1(#AInfo1) WithAInfo2(#AInfo2) WithAInfo3(#AInfo3)
            
     Case #EventId.Value
 
     When (= UPDATE_EMPLOYEE_5250)
 
     #EmployeeController.UpdateListDetails ListManager(#avListManager)
     ForEmpno(#AInfo1)
 
     When (= DELETE_EMPLOYEE_5250)

...

 
     #EmployeeController.DeleteListDetails ListManager(#avListManager) ForEmpno(#AInfo1) inDepartment(#AInfo2) InSection(#AInfo3)

...


 

...


     EndCase

...


 

...


     Endroutine

...


 

...

このコードが書かれたフィルターは

...

UPDATE_EMPLOYEE_5250

...

...

DELETE_EMPLOYEE_5250

...

という名前のイベントをリッスンします。このうちの

...

1 つを受け取ると、共有インスタンスリスト・コントローラーに要求を送付します。 

もちろんこれには、イベント・ペイロード・パラメータを使って社員キーの詳細を受け渡す方法に関する、RAMPスクリプトとフィルター間で同意されたプロトコルが必要です。   

RAMPスクリプトが、インスタンスリストの更新が必要であることを意味する5250操作 (社員の削除や更新など)

...

を検出した場合、次のような

...

JavaScript

...

スクリプト・コードを実行できます。  

     

...

AVSIGNALEVENT("DELETE_EMPLOYEE_5250", "BUSINESSOBJECT", objListManager.AKey1

...

[0

...

], objListManager.AKey2

...

[0

...

], objListManager.AKey3

...

[0

...

] );

...

または  

     AVSIGNALEVENT("UPDATE_EMPLOYEE_5250", "BUSINESSOBJECT", objListManager.AKey3

...

[0

...

]);

...