COBOL2002 言語 拡張仕様編

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

13.4.16 REPEAT COLUMN句(WINDOW SECTION)

形式
[図データ]

機能
REPEAT COLUMN(繰り返し列)句は,同じデータ構造を横方向に繰り返す。

一般規則
  1. REPEAT COLUMN句は,01レベルを除く集団項目に指定できる。
  2. REPEAT COLUMN句を指定した記述項に従属する項目にはREPEAT COLUMN句を指定してはならない。
  3. PC COBOL2002では整数1および整数2は符号のない1〜3けたの数字で,整数1は1〜160,整数2は0〜158でなければならない。
    UNIX COBOL2002では整数1および整数2は符号のない1〜2けたの数字で,整数1は1〜80,整数2は0〜78でなければならない。
  4. REPEAT COLUMN句を書いた記述項のデータ名を参照するときには,添字を付ける。さらに,これに従属するデータ項目の名前を参照するときにも,添字を付ける。ただし,添字の付け方はマニュアル「COBOL2002 言語 標準仕様編 4.3.1(2) 添字(Subscript)」を参照のこと。
  5. REPEAT COLUMN句の上位または下位項目にREPEAT LINE句が指定できる。このとき,表は2次元になる。
  6. REPEAT COLUMN句の下位項目にはSOURCE句を書いてはならない。
  7. REPEAT COLUMN句を指定したデータ項目には,LINE NUMBER句を書いてはならない。
  8. REPEAT COLUMN句を指定したデータ項目の下位には,LINE NUMBER句およびCOLUMN NUMBER句を指定しなければならない。このCOLUMN NUMBER句で指定したカラム番号が,その項目の最初のカラム番号となり,整数1の回数だけ繰り返して配置される。
  9. 整数2はREPEAT COLUMN句で繰り返すデータ構造の間隔を指定する。整数1および整数2に従って配置した結果は,画面に収まる範囲内でなければならない。
  10. WITH指定を省略すると,整数2は0を仮定する。
  11. 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
  1. REPEAT COLUMN句の下位項目のフィールド位置は,左から右へ,上から下になるように定義することが望ましい。
  2. REPEAT COLUMN句の上位項目には,RULE TABLE句を指定してはならない。
  3. 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だけ空け,同じものを繰り返す。
・上記右への繰り返しの後,行間を空けないで次の行に繰り返す。