PERFORM RMP--EE-PANELNAME
この標準ランタイム関数は、単一パネルのフィールド/コントロールの入力を実行する関数で、イベント ループに配置すればパネルのすべてのフィールド/コントロールの入力も可能です。EXECUTE EVENT 標準ランタイム関数は、RM/Panels でユーザー入力を許可する場合に使用する標準の方法です。複数フィールド入力にも使用でき、フィールドごとに柔軟な制御が可能です。1 つのフィールド/コントロールのみを入力する場合は、関連する標準ランタイム関数の ACCEPT FIELD を使用します。
EXECUTE EVENT 標準ランタイム関数のそれぞれの実行について、入力フォーカスを渡すフィールド/コントロールを 3 つの方法で指定できます。
パネルの各フィールド/コントロールの入力値は panelname.WS に格納されます。終了キーを示すフィールド終了コードは、RMP--EXCEPTION- NUMBER に返されます。
さらに、RMP--LAST-FIELD、RMP--LAST-OCCUR、RMP--NEXT-FIELD、および RMP--NEXT-OCCUR の値が次のイベントの該当する値に設定されます。出現番号は COBOL の添え字に相当し、1 から始まります。
モードレス操作では、次のパラメーターも返されます。
PERFORM RMP--EE-PANELNAME WITH TEST AFTER UNTIL F3-KEY.
この場合、F3 キーが押されるまで、パネルで有効になっているすべてのフィールド/コントロールを操作できます。WITH TEST AFTER を指定すると、F3 キーが別のルーチンで押された場合、標準ランタイム関数が少なくとも 1 回は実行されてから条件名 F3 KEY がテストされます。
1 SET RMP--FIRST-FIELD TO TRUE.
2 PERFORM WITH TEST AFTER UNTIL F3-KEY
3 PERFORM RMP--EE-PANELNAME
4 EVALUATE RMP--LAST-FIELD
5 WHEN "CUSTOMER-NUMBER"
PERFORM CUSTOMER-VALIDATION
IF CUST-NOT-VALID
6 SET RMP--REPEAT-EVENT TO TRUE
END-IF
7 WHEN "CUST-BAL"
IF CUST-BAL = 0
8 MOVE "SHIP-CODE" TO RMP--NEXT-FIELD
END-IF
9 WHEN "SHIP-CODE"
IF SHIP-CODE NOT = OLD-SHIP-CODE
PERFORM VALIDATE-SHIP-CODE
IF SHIP-CODE-NOT-VALID
10 SET RMP--REPEAT-EVENT TO TRUE
END-IF
END-IF
11 END-EVALUATE
12 EVALUATE RMP--NEXT-FIELD
13 WHEN "SHIP-CODE"
MOVE SHIP-CODE TO OLD-SHIP-CODE
14 END-EVALUATE
15 END-PERFORM.
このような柔軟性により、無限の可能性が提供されます。イベント ループに関する概念的な情報については、「イベント ループ方式」を参照してください。
| 状態値 | 説明 |
|---|---|
| 0 | 関数は正常に実行されました。 |
| 1 | フィールド/コントロール名が無効です。 |
| 2 | 出現番号が無効です。 |
| 5 | パネルがこのライブラリにありません。 |
| 6 | ライブラリが存在しません。 |
| 8 | パネルにフィールド/コントロールがありません。 |
| 9 | パネルに入力フィールド/コントロールがありません。 |
| 10 | パネルが表示されません。 |
| 14 | この関数の実行中に、パネル ライブラリで COBOL の入出力エラーが発生しました。入出力エラーの詳細を確認するには、C$RERR サブプログラムを使用します。 |