チュートリアル「RAMP-WIN007: データ入力ファンクションのスナップイン」はこのトピックを詳細に扱っています。
フィルターは、関連のインスタンスリストを管理します。RAMP 画面はビジネスオブジェクトのインスタンスを削除、追加、または変更した場合、フィルターに変更が発生したことを通知する必要があります。
コードウィザードを使用したフィルターの作成
RAMP 画面からの変更を検査するフィルターを作成するには、コードウィザードを使用してオプションインスタンスリストを更新するためのシグナルを受け取るRoutineを選択します。
このオプションにより、インスタンスリストへの変更を自動的に処理するフィルター・コード が作成されます。
ボタン・スクリプトへのAVSIGNALEVENTファンクションの追加
変更を処理するボタン (通常、保存または削除) の RAMP のデスティネーション画面のボタン・スクリプトに AVSIGNALEVENT ファンクション を追加して、インスタンスリストを変更する必要があることをフィルターに通知します。
例えば、オブジェクトを更新する RAMP 画面で、次のステートメントを SAVE ボタン・スクリプトに追加します。
AVSIGNALEVENT("Update_List_Entry", "BUSINESSOBJECT", objListManager.AKey1[0]);送信されるイベントの名前は Update_List_Entry で、渡される値は更新されたインスタンスの識別子です。
新しく作成されたオブジェクトの保存を処理するには、フィルターにそのオブジェクトの識別子を渡す必要があります。例えば、社員番号で新しい社員を追加するには、最初に GETVALUE ファンクション を使用して画面上の社員番号を取り込み、objGlobal オブジェクトのプロパティとしてその社員番号を保存します。そして社員番号をフィルターに渡します。
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
