13.4.17 REPEAT LINE句(WINDOW SECTION)
- 形式
-
書き方1
書き方2
- 機能
-
REPEAT LINE(繰り返し行)句は同じ構造を縦方向に繰り返す。
一般規則
-
REPEAT LINE句は,01レベルを除く集団項目に指定できる。
-
REPEAT LINE句を指定した記述項に従属する項目には,REPEAT LINE句を指定してはならない。
-
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でなければならない。
-
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).
-
REPEAT LINE句を含む記述項に従属する記述項には,SOURCE句を書いてはならない。
書き方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および整数2は,画面の行番号を指定する。集団項目にREPEAT LINE句を書くと,この集団に属するすべての基本項目を整数1の行番号から整数2の行番号まで繰り返して配置する。
(例)REPEAT LINE句を用いたフィールドの配置
02 A REPEAT LINE 5 THRU 10. 03 B PIC 〜 03 C PIC 〜
BとCのフィールドを5行から10行までの各行に繰り返して配置する。
-
整数2は整数1より大きい値を指定しなければならない。
書き方2
-
REPEAT LINE句を指定したデータ項目の下位には,LINE NUMBER句およびCOLUMN NUMBER句を指定しなければならない。このLINE NUMBER句で指定した行番号は,その項目が最初に現れる行番号となり,整数3の回数だけ繰り返して配置される。
-
整数4はREPEAT LINE句で繰り返す項目の間隔を指定する。整数3および整数4に従って配置した結果は,画面に収まる範囲内でなければならない。
-
WITH指定を省略すると,整数4は0とみなす。
-
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回繰り返す。