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 サブプログラムを使用します。 |