RAMP-TSAD03 ステップ7. ハンドラーとの通信
ハンドラーに追加の目的や情報を伝達するには、2つの方法があります。
最初の方法では、HANDLE_PROMPT()要求で情報を渡します。
1. RAMPツールを起動します。
2. DisplayEmployee画面のスクリプトで、ボタン・スクリプトのHANDLE_PROMPT()ファンクション呼び出しを見つけて、その呼び出しに文字列パラメータを以下のように追加します。
HANDLE_PROMPT("My Parm1","My Parm2","My Parm3")
コードは以下のようになります。
3. 変更をコミットし、RAMP定義の部分的な保存を行います。
4. [フレームワーク]ウィンドウで、従業員の詳細を表示し、画面の変更されたスクリプトを実行します。
5. Enterを押して[部門コード]フィールドをプロンプトし、テスト/デバッグ・ハンドラーDF_PRM06を表示します。すると次のように表示されます。
HANDLE_PROMPT()ファンクションに渡される引数は、シンボル名(UARG1、UARG2、UARG3など)でハンドラーに渡されます。Visual LANSAハンドラーは コード内で次のようなメソッド呼び出しを使用してこれらの値を取得できます。
Invoke Method(#Com_Owner.uGet5250Field) Name(UARG1) Value(#Std_Text) /* Get UARG1 value into #STD_Text */
このテクニックは、開発者が対話しているハンドラーを理解しているときや一般的にすべてのハンドラーと対話しているときに適切に機能します。また、このテクニックは、UARG1、UARG2などの使用目的についての規則が恐らく必要になることも指しています。
特定のハンドラーと通信するには、次のテクニックを使用します。
2番目の通信手段では、SET_SPECIAL_FIELD_HANDLER()ファンクションを使用してハンドラーに情報を添付します。
これは、ファンクション呼び出しの最後で3つのオプション・パラメータを使用して行われます。
6. 前のステップで作成したSET_SPECIAL_FIELD_HANDLERステートメントを以下のように変更します。
SET_SPECIAL_FIELD_HANDLER("utxtDepartment",KeyEnter,"DF_PRM06", "Other 1","Other 2","Other3");
7. 変更をコミットし、[保存]を実行します。次に、従業員を選択し、画面のスクリプトをもう一度実行します。
8. VF_PRM06ハンドラーを呼び出します。次のように表示されます。
これら3つの情報ブロックを使用して、適切なハンドラーに情報を伝達することができます。以下のサンプルのように、Visual LANSAハンドラーはこれらの値をプロパティとして取得できます。
#Product := #Com_Owner.uHandlerInfo1
#Customer := #Com_Owner.uHandlerInfo2
#ZipCode = #Com_Owner.uHandlerInfo1.toNumber()