COBOL2002 言語 拡張仕様編


13.5.2 ACCEPT文(WINDOW SECTION)

形式

書き方5(画面節(WINDOW SECTION))

[図データ]

機能

ACCEPT(小入力)文は画面からデータを入力してデータ項目へ格納する。

一般規則

  1. 呼び名2は環境部の特殊名段落でWINDOWに関係づけた名前でなければならない。

  2. 一意名7は,画面節で定義した01〜49レベルのデータ項目の名前でなければならない。77レベル記述項およびPICTURE句のない基本項目の名前であってはならない。また,PICTURE句のある基本項目を一つも含まない集団項目であってはならない。

  3. 一意名7が集団項目のときは,その集団に属するすべての入力フィールドと入出力フィールドに対してデータを入力する。ただし,その集団に入力フィールドまたは入出力フィールドが一つもない場合には,終了キーの打けんだけを待つ。SET文でPROTECT(保護)としている場合は,出力フィールドとみなされる。

    (例)集団項目を指定したACCEPT文

           02 A.
             03 B INPUT  〜:入力フィールド
             03 C I-O    〜:入出力フィールド
             03 D OUTPUT 〜:出力フィールド
                :
               ACCEPT A FROM WINDOW.

    ACCEPT文を実行すると,BとCのフィールドに対してデータを入力する。Dのフィールドに対しては何もしない。

  4. 一意名7が基本項目のときは,そのフィールドに対してだけデータを入力する。ただし,そのフィールドが出力フィールドの場合には,終了キーの打けんだけを待つ。

  5. USING ONLY DATA指定は,データを入力するときに,フィールド属性を新たに設定しないことを示す。このフィールドには,ACCEPT文を実行する前にSET文またはDISPLAY文を実行してフィールド属性を設定しておく。

    (例)USING ONLY DATA指定の使用

             03 A INPUT 〜
                :
               ACCEPT A FROM WINDOW.
                     |
               入力データのエラーを検出
                     |
               SET FIELD A TO REVERSE.              …(1)
               ACCEPT A FROM WINDOW USING ONLY DATA.…(2)

    (1)エラーを検出したのでフィールドを反転する。

    (2)フィールドを反転したままデータを再入力する。

  6. AUTO-ADVANCE指定は項目の長さ分のデータ入力があると,終了キーの打けんを待たないで入力を終了する。ただし,長さ分を入力する前に終了キーを打けんすると,そこで入力は終了する。特にこのフィールドを自動入力フィールドという。

    • AUTO-ADVANCE指定を書いた場合,項目の長さ分のデータを入力して操作を終了したときは,WINDOW-KEY(終了キー)の値として「00」が設定される。

    • ACCEPT文で複数のフィールドを指定した場合,自動入力フィールドとなるのは,画面上で最右下に位置するフィールドである。

    (例)AUTO-ADVANCE指定の画面表示フィールド

    [図データ]

  7. BUZZER指定は,データ入力の応答待ちになるとき,短発音のブザーを鳴動する。

  8. FIRST FIELD指定は,データの入力待ちになるときに一意名8で指定したフィールドにカーソルを位置づける。この指定を書いたとき一意名8は一意名7に含まれる入力,または入出力フィールドとして定義された基本項目の名前でなければならない。

    FIRST FIELD指定がない場合,画面の左上にある入力フィールドにカーソルを位置づける。入力フィールドがない場合,カーソル位置は変更されないで終了キー入力待ちとなる。

  9. BY END KEY指定,IN NUMERIC MODE指定,AUTO-SHIFT指定,WITH NO WAIT指定は覚え書きとみなす。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.1 ACCEPT文