関連するプロンプタ フォーム (VLハンドラー) をフィールドの横に表示します。フィールドとプロンプタフォームは、高度なプロンプトに説明されているように、特別なフィールド受け渡しエリアで指定します。 

必要に応じて、追加情報を渡したり、プロンプタフォームから追加情報を取得したりできます。

構文

HANDLE_PROMPT(sArgument1 [, sArgument2] [, sArgument3]...)

パラメータ

SArgumentn

任意。ユーザー定義のプロンプタが要求する可能性がある値が入った文字列。デフォルトでは、ユーザー定義のプロンプタは、5250画面のすべての名前付きフィールドに双方向でアクセスできます。

戻り値

なし

     if ( HANDLE_PROMPT() ) return;

プロンプタフォームで sArgument1、sArgument2 などとして引き渡される値にアクセス

RAMPスクリプトにある次のようなファンクションは、

     HANDLE_PROMPT("HELLO","THERE",123);

  プロンプタフォームで次のようにアクセスされます。

     Invoke Method(#Com_Owner.uGet5250Field) Name(UARG1) Value(#Arg1Value) ... returns "HELLO" in #Arg1Value.
Invoke Method(#Com_Owner.uGet5250Field) Name(UARG2) Value(#Arg2Value) ... returna "THERE" in #Arg2Value.
Invoke Method(#Com_Owner.uGet5250Field) Name(UARG3) Value(#Arg3Value) ... returns "123" as a string in #Arg3Value.

渡すことができる引数の数に制限はありません。

数値を渡すこともできますが、数値は VL コンポーネントでは文字列として示されるので、再度数値に変換する必要があります。

渡されない引数を参照しても問題はありません。次のようなコードがあったとします。

     #Arg15Value := "TEST"
Invoke Method(#Com_Owner.uGet5250Field) Name(UARG15) Value(#Arg15Value)

このコードを実行すると #ARG15Value は "TEST" のまま残りますが、以下のコードを実行することによって値が渡されたかどうかを実際に確認できます。

     Invoke Method(#Com_Owner.uGet5250Field) Name(UARG15) Value(#Arg15Value) Found(#Found)
If (#Found = TRUE) /* 15 番目の引数が HANDLE_PROMPT に引き渡された場合*/
Else                      /* 15 番目の引数が引き渡されていない場合*/

プロンプタフォームが呼び出された画面上にない値にアクセスする必要がある場合は、HANDLE_PROMPTファンクションに追加の引数を使用できます。 

例えば、最初の画面で顧客情報が入力され、次の画面で請求書番号の入力が指示される場合にこれを利用できます。  この請求書番号が最初の画面で入力された顧客情報に依存し、次の画面でその顧客情報にアクセスできない場合は、必要な顧客情報をobjGlobal変数に格納して、プロンプタ・フォーム・コードで適切な選択基準に対してHANDLE_PROMPT()パラメータとしてこの変数を渡すことができます。