IBM Extension

ワークステーション入出力

次のいずれかの場合には、ACCEPT ステートメントは拡張 ACCEPT ステートメントであると見なされます。
次の場合には、ACCEPT ステートメントは標準 ACCEPT ステートメントであると見なされます。
構文図を読む構文図をスキップする
ACCEPT ステートメント - 形式 7 - ワークステーション I/O

                 .-------------------------.   
                 V                         |   
>>-ACCEPT--ID-1----+---------------------+-+-------------------->
                   +-| 行と列の句 |-----------+     
                   +-FROM CRT------------+     
                   +-MODE--+----+--BLOCK-+     
                   |       '-IS-'        |     
                   '-| WITH 句 |----------'     

>--+--------------------------------+--------------------------->
   '-+----+--EXCEPTION--命令ステートメント-1-'   
     '-ON-'                             

>--+-------------------------------------+--+------------+-----><
   '-NOT--+----+--EXCEPTION--命令ステートメント-2-'  '-END-ACCEPT-'   
          '-ON-'                                             

行と列の句

             .----------------------------------.     
             V                                  |     
|--+-+----+----+-LINE---+--+--------+--+-ID-2-+-+-+-------------|
   | '-AT-'    +-COLUMN-+  '-NUMBER-'  '-整数-1-'   |   
   |           '-COL----'                         |   
   '-AT--+-ID-3-+---------------------------------'   
         '-整数-2-'                                     

WITH 句

         .----------------------------------------------.   
         V                                              |   
|--WITH----+-+-AUTO------+----------------------------+-+-------|
           | '-AUTO-SKIP-'                            |     
           +-+-BELL-+---------------------------------+     
           | '-BEEP-'                                 |     
           +-BLINK------------------------------------+     
           +-+-FULL---------+-------------------------+     
           | '-LENGTH-CHECK-'                         |     
           +-HIGHLIGHT--------------------------------+     
           +-+-REQUIRED----+--------------------------+     
           | '-EMPTY-CHECK-'                          |     
           +-REVERSE-VIDEO----------------------------+     
           +-+-SECURE--+------------------------------+     
           | '-NO-ECHO-'                              |     
           +-UNDERLINE--------------------------------+     
           +-RIGHT-JUSTIFY----------------------------+     
           +-SPACE-FILL-------------------------------+     
           +-TRAILING-SIGN----------------------------+     
           +-UPDATE-----------------------------------+     
           +-ZERO-FILL--------------------------------+     
           +-SIZE--+----+--+-ID-4-+-------------------+     
           |       '-IS-'  '-整数-3-'                   |     
           |        (1)                               |     
           +-PROMPT------+--------------+--+-ID-5---+-+     
           |             '-CHARACTER IS-'  '-リテラル-1-' |     
           |                    (1)                   |     
           +-+-FOREGROUND-COLOR-----+--+----+--整数-4---+     
           | '-FOREGROUND-COLOUR----'  '-IS-'         |     
           |                    (1)                   |     
           +-+-BACKGROUND-COLOR-----+--+----+--整数-5---+     
           | '-BACKGROUND-COLOUR----'  '-IS-'         |     
           |              (1)                         |     
           '-LEFT-JUSTIFY-----------------------------'     

注:
  1. 構文検査だけ行われます。
ID-1
更新可能なデータ項目。

ID-1 は、内部浮動小数点データ項目でも外部浮動小数点データ項目でも可能です。

受け入れられた、または表示されたフィールドは、その前後に属性バイトが必要です。 これを実現するには、少なくとも初期表示属性を表示するためのスペースが画面上で使用可能になっていなければなりません。 したがって、第 1 行、第 1 列は最初の表示属性用に使用されるため、その場所をデータ用に使用することはできません。 データ用に使用可能な最初の位置は、第 1 行、第 2 列となります。

例えば、次のとおりです。

この図は第 1 行、第 2 列の例を示しています

AT 句は、受け入れられる、または表示されることになるフィールドの開始行および列を設定します。 これは、初期表示属性の位置を示すものではありません。

属性バイトがデータ・バイトと重なり合ったり、データ・バイトが属性バイトと重なり合ったりしないように、各フィールドが画面上に配置されていることを確認する必要があります。 さらに、属性バイトの終わりは、特定ワークステーションについて定義した通常の属性になることにも留意してください。 したがって、期待どおりの結果を得るには属性が正しい順序で指定されていることを確認する必要があります。

最初に画面をクリアするときは、WITH BLANK SCREEN 句を含んだ DISPLAY ステートメントを使用してください。

ID-1 が画面に合わないときは、英数字データが切り捨てられたり、数字データが画面上に表示されなくなります。

ID-1 がグループ項目で、MODE IS BLOCK 句がなければ、FILLER 以外の名前を持つ基本従属項目が表示されます。 基本項目は、その記述が DATA DIVISION に現れる順番で画面に同時に表示されて位置付けされ、グループ中の FILLER 項目の長さによって分離されます。 このため、行上の最初の位置は、直前の行の最後の位置にすぐに続くものと見なされます。

項目が FILLER によって分離されている場合、属性バイトは FILLER の長さに含まれます。 このようにして、1 または 2 バイトの FILLER に、分離項目の後ろに続く属性および先の属性の両方が含まれていることになります。 1 バイト FILLER の場合には、後ろに続く属性および先の属性が同じバイトを占有します。 データ項目は、通常 1 つの属性バイトで分離されているので、1 バイトの FILLER 項目は必要ありません。

REDEFINES、POINTER、PROCEDURE-POINTER、および INDEX-NAME データが MODE IS BLOCK 句のないグループ項目にあるとき、それらのデータは無視されます。

拡張 ACCEPT ステートメントは、実行キーが押された後にワークステーションから変更済みの値だけを受け入れることにより、ID-1 の値を事前表示します。 実行キーを押すだけでは、事前表示されたデータ項目は更新されません。

ACCEPT された値は、データ項目に対して指定された画面位置から取られた文字のイメージで、フィールド終了キーが押された時点でのカーソル位置によって区切られます。

FIELD EXIT キーを使用して、英字フィールドおよび英数字フィールド内のすべての後書きスペースを 16 進のゼロに変換します。 これはデフォルトのコンパイラー・オプション *UNDSPCHR が有効な場合に使用できます。 例えば、次のとおりです。
DATA DIVISION.
       01    STRUC1.
             03  F11 PIC AA VALUE 'A'.
             03  F12 PIC 9(4) VALUE 123.
             03  F13 PIC XXX VALUE 'B'.
PROCEDURE DIVISION.
       ACCEPT STRUC1 AT 2102.
この例にある ACCEPT ステートメントは、以下の 3 つのフィールドを事前表示します。
  • F11 は第 21 行、第 2 列から始まります。 この属性バイトは第 21 行、第 1 列を占有します。
  • F12 は第 21 行、第 5 列から始まります。 この属性バイトは第 21 行、第 4 列を占有します。
  • F13 は第 21 行、第 10 列から始まります。 その属性バイトは第 21 行、第 9 列を占有します。

ここで、第 21 行には次のような結果が現れます。

この図は、第 21 行の表示結果を示しています

数字フィールド F12 は右そろえで、その先頭にスペースが入ることに注意してください。

フィールド F13 の最後にカーソルを置き、上記の 3 つのフィールドの値に応じてフィールド終了キーを押すと、それらフィールドの値は変更されずに残ります。 ただし、F11 および F13 の後書きスペース (X'40') は確実に 16 進数のゼロになるので、テスト IF F13='B␢␢' は ACCEPT 操作の後で失敗します。

16 進数のゼロを後書きしないようにするには、SPACE-FILL 句を使用します。 既存プログラムにこの句をもたない拡張 ACCEPT ステートメントがすでに含まれており、 プログラム変更が高価であったり望ましい解決方法でない場合には、*NOUNDSPCHR コンパイラー・オプションの使用を考慮できます。 このオプションは、拡張 ACCEPT および拡張 DISPLAY ステートメントが表示可能文字だけを処理するプログラムだけに使用してください。

表示だけ可能な文字は、次の場合に処理されます。
  • 拡張 DISPLAY ステートメントが、2 進数、内部浮動小数点、またはパック・データ (直接または再定義されたもの) を使用しない場合。
  • 拡張 ACCEPT ステートメントが、英数字フィールドとして再定義された 2 進数、内部浮動小数点、またはパック・データを使用しない場合。
注: MODE IS BLOCK 句は英数字フィールドに対する、データ・グループの暗黙的な再定義です。
例えば、次のとおりです。
        01     STRUC2.
              03  F21 PIC 99.
              03  F22 PIC 9(10) USAGE COMP-3 VALUE 1111123.
              03  F23 PIC X(5).
ACCEPT STRUC2 MODE IS BLOCK AT 0102 は、長さが 13 バイトの英数字フィールドの 1 つとして処理されるために、表示不能文字が含まれることになります。

リモート制御装置と 5250 エミュレーションを使用して、プログラムがワークステーションで実行される場合、ILE COBOL 実行時モジュールは、 コンパイラー・オプション *UNDSPCHR を (それが有効な場合) *NOUNDSDPCHR に変更して、通知メッセージをユーザーに送信します。 システム構成にさまざまなワークステーション制御機構が含まれているときには、 一貫性のある結果が得られるように、*NOUNSDPCHR オプションを使用することをお勧めします。 このオプションを有効にするには、COBOL ソース・プログラム内の PROCESS ステートメントに NOUNDSPCHR を指定します。

End of IBM Extension