COBOL2002 言語 拡張仕様編


13.4.17 REPEAT LINE句(WINDOW SECTION)

形式

書き方1

[図データ]

書き方2

[図データ]

機能

REPEAT LINE(繰り返し行)句は同じ構造を縦方向に繰り返す。

一般規則

  1. REPEAT LINE句は,01レベルを除く集団項目に指定できる。

  2. REPEAT LINE句を指定した記述項に従属する項目には,REPEAT LINE句を指定してはならない。

  3. Windows COBOL2002では整数1,整数2および整数3は符号のない1〜3けたの数字で,その値は1〜120でなければならない。ただし,書き方2の整数4は,0〜118でなければならない。

    UNIX COBOL2002では整数1,整数2および整数3は符号のない1〜2けたの数字で,その値は1〜24でなければならない。ただし,書き方2の整数4は,0〜22でなければならない。

  4. REPEAT LINE句を書いた記述項のデータ名を参照するときには,添字を付けなければならない。さらに,これに従属するデータ項目の名前を参照するときにも添字を付けなければならない。添字の付け方は表操作機能と同じである。

    (例)添字の付け方

           02 A REPEAT LINE 5 THRU 7.
             03 B PIC 〜
             03 C PIC 〜
             03 D PIC 〜

    [図データ]

    データ名を参照するときには次のように添字を付ける。

    DISPLAY A(1) UPON WINDOW.

    MOVE NC '商品名' TO C(I).

  5. REPEAT LINE句を含む記述項に従属する記述項には,SOURCE句を書いてはならない。

書き方1

  1. REPEAT LINE句を書いたデータ項目およびそれに従属する項目には,LINE NUMBER句を書いてはならない。また,上位レベルにLINE NUMBER句を書いてはならない。

    (例)REPEAT LINE句の正しい書き方

           01 A.
             02 B REPEAT LINE 〜.  …正しい
               03 C PIC 〜
             02 D REPEAT LINE 〜.  …正しい
               03 E PIC 〜

    (例)REPEAT LINE句の誤った書き方

           01 A.
             02 B REPEAT LINE 〜.
               03 C REPEAT LINE 〜.  …誤り
                 04 D LINE NUMBER 〜  …誤り
  2. 整数1および整数2は,画面の行番号を指定する。集団項目にREPEAT LINE句を書くと,この集団に属するすべての基本項目を整数1の行番号から整数2の行番号まで繰り返して配置する。

    (例)REPEAT LINE句を用いたフィールドの配置

           02 A REPEAT LINE 5 THRU 10.
             03 B PIC 〜
             03 C PIC 〜

    [図データ]

    BとCのフィールドを5行から10行までの各行に繰り返して配置する。

  3. 整数2は整数1より大きい値を指定しなければならない。

書き方2

  1. REPEAT LINE句を指定したデータ項目の下位には,LINE NUMBER句およびCOLUMN NUMBER句を指定しなければならない。このLINE NUMBER句で指定した行番号は,その項目が最初に現れる行番号となり,整数3の回数だけ繰り返して配置される。

  2. 整数4はREPEAT LINE句で繰り返す項目の間隔を指定する。整数3および整数4に従って配置した結果は,画面に収まる範囲内でなければならない。

  3. WITH指定を省略すると,整数4は0とみなす。

  4. REPEAT LINE句の下位に指定された最初のLINE NUMBER句およびCOLUMN NUMBER句は絶対指定でなければならない。

    (例1)フィールドの配置

           02 REPEAT 2 TIMES.
             03 A LINE 6 COLUMN 5 〜.
             03 B LINE PLUS 2 COLUMN 10 〜.

    [図データ]

    AとBのフィールドを0行間隔で2回繰り返す。

    (例2)フィールドの配置

           02 REPEAT 2 TIMES WITH 1.
             03 A LINE 6 COLUMN 5 〜.
             03 B LINE 8 COLUMN 10 〜.

    [図データ]

    AとBのフィールドを1行間隔で2回繰り返す。

    (例3)フィールドの配置

           02 REPEAT LINE 2 COLUMN TIMES.
             03 A LINE 6 COLUMN 10 〜.
             03 B LINE 6 COLUMN 20 〜.

    [図データ]

    AとBのフィールドを0行間隔で2回繰り返す。これは,次のREPEAT句と同じ意味になる。

           02 REPEAT LINE 6 THRU 7.
             03 A COLUMN 10 〜.
             03 B COLUMN 20 〜.

    (例4)フィールドの配置

           02 REPEAT 2 TIMES WITH 2.
             03 LINE 6.
               04 A COLUMN 5 〜.
               04 B COLUMN 10 〜.
             03 C LINE 7 COLUMN 5 〜.

    [図データ]

    AとBのフィールドとCのフィールドを2行間隔で2回繰り返す。