EXECUTE EVENT

実行

PERFORM RMP--EE-PANELNAME

説明

この標準ランタイム関数は、単一パネルのフィールド/コントロールの入力を実行する関数で、イベント ループに配置すればパネルのすべてのフィールド/コントロールの入力も可能です。EXECUTE EVENT 標準ランタイム関数は、RM/Panels でユーザー入力を許可する場合に使用する標準の方法です。複数フィールド入力にも使用することができ、フィールドごとに柔軟な制御が可能です。1 つのフィールド/コントロールのみを入力する場合は、関連する標準ランタイム関数の ACCEPT FIELD を使用します。

必須パラメーター

EXECUTE EVENT 標準ランタイム関数のそれぞれの実行について、入力フォーカスを渡すフィールド/コントロールを 3 つの方法で指定できます。

  1. パネルの最初のフィールド/コントロールから入力を開始する場合は、RMP--FIRST-FIELDTRUE に設定する必要があります。
  2. 次の入力フィールド/コントロールを指定する場合は、RMP--NEXT-FIELD をフィールド/コントロール名に設定し、RMP--NEXT-OCCUR をフィールド/コントロールの出現番号に設定する必要があります。RM/Panels ランタイム システムは、EXECUTE EVENT 標準ランタイム関数が実行されるたびにこれらのパラメーターをリセットし、次の実行に備えます。
  3. ユーザーが最後に入力したパネルのフィールド/コントロールから入力を再開する場合は、RMP--REPEAT-EVENTTRUE に設定する必要があります。これは、複数のパネルの使用時にユーザーが前にアクセスしたパネルに戻る場合や無効なユーザー入力が検出された場合に便利です。

戻り値

パネルの各フィールド/コントロールの入力値は panelname.WS に格納されます。終了キーを示すフィールド終了コードは、RMP--EXCEPTION- NUMBER に返されます。

さらに、RMP--LAST-FIELDRMP--LAST-OCCURRMP--NEXT-FIELD、および RMP--NEXT-OCCUR の値が次のイベントの該当する値に設定されます。出現番号は COBOL の添え字に相当し、1 から始まります。

モードレス操作では、次のパラメーターも返されます。

  • RMP--LAST-PANEL には、EXECUTE EVENT 標準ランタイム機能が最後に実行されたパネルの名前が格納されます。
  • RMP--REQUESTED-PANEL には、ユーザーが次のイベント用に要求したパネルの名前が格納されます。モードレス動作をサポートするには、このパラメーターで示されるパネルに対して次の EXECUTE EVENT 標準ランタイム関数が実行されるようにアプリケーション プログラムを記述する必要があります。

その他の使用上の注意事項

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.
  1. RMP--FIRST-FIELDTRUE に設定して、パネルの最初のフィールド/コントロールからユーザー入力を開始するように設定しています。
  2. ループ制御の部分です。イベント ループを終了する条件を指定しています。
  3. イベントの実行部分です。フィールド/コントロールの入力を指定しています。これは EXECUTE EVENT 標準ランタイム関数で実行されます。
  4. イベントのテストの最初の部分です。EVALUATE 文を使用して、ユーザーによって入力されたパネルのフィールド/コントロールを特定します。
  5. 顧客番号が入力されたかどうかを確認する文です。入力されている場合は、アプリケーション プログラムに含まれている検証ルーチンが実行されます。
  6. RMP--REPEAT-EVENTTRUE に設定して、次のフィールド/コントロールに移るのではなく、顧客番号の再入力を次のイベントとして設定しています。
  7. 顧客残高が入力されたかどうかを確認する文です。
  8. SHIP-CODERMP--NEXT-FIELD に代入して、パネルの次のフィールド/コントロールではなく、SHIP-CODE フィールド/コントロールの入力を次のイベントとして設定しています。
  9. SHIP-CODE フィールド/コントロールが入力されたかどうかを確認する文です。入力されている場合は、値に変更があるかどうかを確認し、新しい値を検証します。
  10. RMP--REPEAT-EVENTTRUE に設定して、SHIP-CODE フィールド/コントロールの再入力を設定しています。
  11. 最後に入力されたフィールド/コントロールの評価を終了する文です。
  12. 入力する次のフィールド/コントロールの評価を開始する文です。
  13. SHIP-CODE フィールド/コントロールの入力が開始されるかどうかを確認する文です。開始される場合は、上記の #9 の処理で値の変更を検出できるように現在の値を保存します。
  14. 入力する次のフィールド/コントロールの評価を終了する文です。
  15. ループの 1 回の反復を終了する文です。

    このような柔軟性により、無限の可能性が提供されます。イベント ループに関する概念的な情報については、「イベント ループ方式」を参照してください。

RMP--STATUS の値

ステータス値 説明
0 関数は正常に実行されました。
1 フィールド/コントロール名が無効です。
2 出現数が無効です。
5 パネルがこのライブラリにありません。
6 ライブラリが存在しません。
8 パネルにフィールド/コントロールがありません。
9 パネルに入力フィールド/コントロールがありません。
10 パネルが表示されません。
14 この関数の実行中に、パネル ライブラリで COBOL の入力/出力エラーが発生しました。入力/出力エラーの詳細を判別するには、C$RERR サブプログラムを使用します。