You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/lansa050_1535.htm]
現在地: RAMP-TSガイド > スクリプト > 使用方法 > RAMP 画面からのインスタンスリストの更新

RAMP 画面からのインスタンスリストの更新

チュートリアル「[<span style="color: #0000ee"><span style="text-decoration: underline; ">RAMP-WIN007: データ入力ファンクションのスナップイン</span></span>]」はこのトピックを詳細に扱っています。
フィルターは、関連のインスタンスリストを管理します。RAMP 画面はビジネスオブジェクトのインスタンスを削除、追加、または変更した場合、フィルターに変更が発生したことを通知する必要があります。
コードウィザードを使用したフィルターの作成
RAMP 画面からの変更を検査するフィルターを作成するには、コードウィザードを使用してオプションインスタンスリストを更新するためのシグナルを受け取るRoutineを選択します。
 

このオプションにより、[<span style="color: #0000ee"><span style="text-decoration: underline; ">インスタンスリストへの変更を自動的に処理するフィルター・コード</span></span>]が作成されます。
 
ボタン・スクリプトへのAVSIGNALEVENTファンクションの追加
変更を処理するボタン (通常、保存または削除) の RAMP のデスティネーション画面のボタン・スクリプトに[<span style="color: #0000ee"><span style="text-decoration: underline; ">AVSIGNALEVENT ファンクション</span></span>]を追加して、インスタンスリストを変更する必要があることをフィルターに通知します。
例えば、オブジェクトを更新する RAMP 画面で、次のステートメントを SAVE ボタン・スクリプトに追加します。 
AVSIGNALEVENT("Update_List_Entry", "BUSINESSOBJECT", objListManager.AKey1[0]);
送信されるイベントの名前は Update_List_Entry で、渡される値は更新されたインスタンスの識別子です。
新しく作成されたオブジェクトの保存を処理するには、フィルターにそのオブジェクトの識別子を渡す必要があります。例えば、社員番号で新しい社員を追加するには、最初に[<span style="color: #0000ee"><span style="text-decoration: underline; ">GETVALUE ファンクション</span></span>]を使用して画面上の社員番号を取り込み、[<span style="color: #0000ee"><span style="text-decoration: underline; ">objGlobal </span></span>]オブジェクトのプロパティとしてその社員番号を保存します。そして社員番号をフィルターに渡します。
objGlobal.utxtEmployeeCode = GETVALUE("utxtEmployeeCode");
SENDKEY(KeyEnter);
AVSIGNALEVENT("Add_List_Entry", "BUSINESSOBJECT", objGlobal.utxtEmployeeCode);
(utxtEmployeeCode フィールドは、デスティネーション画面でテキストフィールドとして定義されている社員番号フィールドです。)
インスタンスリストの更新に使用できる標準のイベント名は次のとおりです。

  • Refresh_Instance_List
  • Update_List_Entry
  • Add_List_Entry
  • Delete_List_Entry.

[ |../../index.htm#lansa/lansa050_1535.htm]

  • No labels