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

RAMPスクリプトからのインスタンスリストの操作


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

  1. 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\]);
    [ !worddavaf485e25f57cd86bb5b0fc63f3f1b1cc.png|height=32,width=32! |../../index.htm#lansa/lansa048_3145.htm]