COBOL2002 言語 拡張仕様編
- 形式
- 機能
- REPEAT COLUMN(繰り返し列)句は,同じデータ構造を横方向に繰り返す。
- 一般規則
- REPEAT COLUMN句は,01レベルを除く集団項目に指定できる。
- REPEAT COLUMN句を指定した記述項に従属する項目にはREPEAT COLUMN句を指定してはならない。
- PC COBOL2002では整数1および整数2は符号のない1〜3けたの数字で,整数1は1〜160,整数2は0〜158でなければならない。
UNIX COBOL2002では整数1および整数2は符号のない1〜2けたの数字で,整数1は1〜80,整数2は0〜78でなければならない。
- REPEAT COLUMN句を書いた記述項のデータ名を参照するときには,添字を付ける。さらに,これに従属するデータ項目の名前を参照するときにも,添字を付ける。ただし,添字の付け方はマニュアル「COBOL2002 言語 標準仕様編 4.3.1(2) 添字(Subscript)」を参照のこと。
- REPEAT COLUMN句の上位または下位項目にREPEAT LINE句が指定できる。このとき,表は2次元になる。
- REPEAT COLUMN句の下位項目にはSOURCE句を書いてはならない。
- REPEAT COLUMN句を指定したデータ項目には,LINE NUMBER句を書いてはならない。
- REPEAT COLUMN句を指定したデータ項目の下位には,LINE NUMBER句およびCOLUMN NUMBER句を指定しなければならない。このCOLUMN NUMBER句で指定したカラム番号が,その項目の最初のカラム番号となり,整数1の回数だけ繰り返して配置される。
- 整数2はREPEAT COLUMN句で繰り返すデータ構造の間隔を指定する。整数1および整数2に従って配置した結果は,画面に収まる範囲内でなければならない。
- WITH指定を省略すると,整数2は0を仮定する。
- 2回目以降の繰り返しでのカラム番号は次の手順で決定する。
・REPEAT COLUMN句の下位構造の中の最小カラム番号を求める。
・REPEAT COLUMN句の下位構造の中の最大カラム番号を求める。
(各COLUMN句の値+フィールド長)
・繰り返し相対値を求める。
(b)-(a)+整数2
・各COLUMN句の値に前項を加えた値が,2回目の繰り返しのカラム番号となる。
(例)フィールドの配列
02 REPEAT COLUMN 2 TIMES WITH 3.
03 LINE 5.
04 A PIC X(5) COLUMN 10 〜.
04 B PIC X(3) COLUMN 17 〜.
03 LINE 6.
04 C PIC X(5) COLUMN 13 〜.
- ・構造内での最小のカラム番号:10
- ・構造内での最大のカラム番号:20
- ・繰り返し相対位置((b)-(a)+WITH値):13
- ・2回目の繰り返しによるカラム番号:
- A(2)=10+13=23
- B(2)=17+13=30
- C(2)=13+13=26
- REPEAT COLUMN句の下位項目のフィールド位置は,左から右へ,上から下になるように定義することが望ましい。
- REPEAT COLUMN句の上位項目には,RULE TABLE句を指定してはならない。
- REPEAT COLUMN句の下位に指定された最初のLINE NUMBER句およびCOLUMN NUMBER句は絶対指定でなければならない。
(例)フィールドの配置
02 REPEAT COLUMN 2 TIMES.
03 LINE 5.
04 A PIC X(5) COLUMN 10 〜.
- (例)フィールドの配置(REPEAT LINEとの組み合わせ)
02 REPEAT LINE 2 TIMES.
03 REPEAT COLUMN 2 TIMES WITH 3.
04 LINE 5.
05 A PIC X(5) COLUMN 10 〜.
05 B PIC X(3) COLUMN 18 〜.
04 LINE 6.
05 C PIC X(7) COLUMN 10 〜.
- ・A(1,1)B(1,1)C(1,1)の右側に3だけ空け,同じものを繰り返す。
- ・上記右への繰り返しの後,行間を空けないで次の行に繰り返す。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.