COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

13.4.17 REPEAT LINE句(WINDOW SECTION)

形式
書き方1
[図データ]
書き方2
[図データ]

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

一般規則
  1. REPEAT LINE句は,01レベルを除く集団項目に指定できる。
  2. REPEAT LINE句を指定した記述項に従属する項目には,REPEAT LINE句を指定してはならない。
  3. PC 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).
  1. 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 〜  …誤り
 
  1. 整数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行までの各行に繰り返して配置する。
  1. 整数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回繰り返す。