分割制御フィールド

入力レコード中の複数のフィールドに同じ制御レベル標識を割り当ていると、分 割制御フィールドが形成されます。 プログラム記述ファイルの場合には、同じ制 御レベル標識を持つフィールドは入力仕様に指定された順序でプログラムによ って結合され、単一の制御フィールドとして取り扱われます (図 1 を参照)。 最初に定義されたフィールドは、制御フィールドの高位 (左端) 位置に入れら れ、最後に定義されたフィールドは、制御フィールドの低位 (右端) 位置に入 れられます。

図 1. 分割制御フィールド
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
IFilename++SqNORiPos1+NCCPos2+NCCPos3+NCC................................
I........................Fmt+SPFrom+To+++DcField+++++++++L1M1FrPlMnZr....
IMASTER        01
I                                 28   31  CUSNO         L4
I                                 15   20  ACCTNO        L4
I                                 50   52  REGNO         L4
外部記述ファイルの場合には、同じ制御レベル標識を持つフィールドは、その フィールドが入力仕様に指定された順序ではなく、データ記述仕様 (DDS) に記 述されている順序で結合されます。 例えば、DDS に次のフィールドが次の順序で指定されているとします。
また、これらのフィールドが、入力仕様で次の順序により同じ制御レベル標 識を持つように指定されているとします。

フィールドは EMPNO DPTNO REGNO の順序で結合されて分割制御フィールドが構 成されます。

分割制御フィールドについては、次のような特別な規則があります。

図 2 は、これらの規則の例を示しています。

図 2. 分割制御フィールドの特別な規則
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
IFilename++SqNORiPos1+NCCPos2+NCCPos3+NCC................................
I........................Fmt+SPFrom+To+++DcField+++++++++L1M1FrPlMnZr....
IDISK      BC  91   95 C1
I         OR   92   95 C2
I         OR   93   95 C3
I
 * All portions of the split control field must be assigned the same
 * control level indicator and all must have the same field record
 * relation entry.
I                                  1    5  FLD1A         L1
I                                 46   50  FLD1B         L1
I                                 11   13  FLDA          L2
I                                 51   60  FLD2A         L3
I                                 31   40  FLD2B         L3
I                                 71   75  FLD3A         L4  92
I                                 26   27  FLD3B         L4  92
I                                 41   45  FLD3C         L4  92
I                                 61   70  FLDB              92
I                                 21   25  FLDC              92
I                                  6   10  FLD3D         L4  93
I                                 14   20  FLD3E         L4  93
95 桁目の 1 で識別されるレコードには、次の 2 つの分割制御フィールドがあ ります。
  1. FLD1A および FLD1B
  2. FLD2A および FLD2B
95 桁目の '2' で識別されるレコードには、次の 3 つの分割制御フィールドがあ ります。
  1. FLD1A および FLD1B
  2. FLD2A および FLD2B
  3. FLD3A、FLD3B、および FLD3C
95 桁目の '3' で識別される 3 番目のレコード・タイプにも、次の 3 つの分割制 御フィールドがあります。
  1. FLD1A および FLD1B
  2. FLD2A および FLD2B
  3. FLD3D および FLD3E