23 から 46 桁目 (レコード識別コード)

23 から 46 桁目の記入項目は、入力ファイルの各レコード・タイプを識別します。 各 仕様行に入れることができるのは 1 から 3 個のレコード識別コードです。 4 つ以上 のレコード識別コードは、追加の行に AND/OR 関係を使用して指定することがで きます。 ファイルに 1 つのレコード・タイプしか入っていない場合には、識別コードをブ ランクのままにしておくことができますが、レコード識別項目 (21 から 22 桁目) お よび順序 (17 から 18 桁目) は指定しなければなりません。

注:
レコード識別コードは図形データ・タイプまたは UCS-2 データ・タイプ の処理には適用されません。レコード識別が行われるのは単一バイトの桁に 対してだけです。

23 から 46 桁目には、23 から 30 桁目、31 から 38 桁目、および 39 から 46 桁目の 3 組の指定 をすることができます。各組は、否定コード部分、および文字の 4 つのグループに分けられます。

以下の表は、各組のどのカテゴリーでどの桁が使用されるかを示しています。

カテゴリー 23 から 30 31 から 38 39 から 46
23 から 27 31 から 35 39 から 43
否定 28 36 44
コード部分 29 37 45
文字 30 38 46

これらの組の指定は一定の順序である必要はありません。 例えば、 23 から 30 桁目に指定する必要がなくとも、31 から 38 桁目に指定することができます。 ファイル内の入力レコードが同じタイプであった場合には、レコード識別コード 記入項目は必要ありません。 レコード識別コードが含まれていない入力仕様書では 、ファイルの最終レコード・タイプが定義されるので、未定義のレコード・タイ プも処理できるようになります。 レコード識別コードが満たされない場合には、RPG IV 例外/エラー処理ルーチンに 制御が渡されます。

23 から 27、31 から 35、および 39 から 43 桁目 (桁)

記入
説明
ブランク
レコード識別コードはありません。
1 から 32766
レコードの中でレコード識別コードが入っている位置。

これらの桁には、各レコードの中でレコード識別コードが入っている位置を記 入してください。 コードが入っている位置は、ファイルについて指定されたレコ ード長の範囲内になければなりません。 この指定は右寄せしなければなりませんが、先行ゼロは省略することができます。

28、36、および 44 桁目 (否定)

記入
説明
ブランク
レコード識別コードがなければなりません。
N
レコード識別コードがあってはなりません。

指定したレコードの位置に記述したコードがあってはならない場合には、この 桁に N を記入してください。

29、37、および 45 桁目 (コード部分)

記入
説明
C
文字全体。
Z
文字のゾーン部分。
D
文字の数字部分。

この記入項目では、レコード識別コードの中でテストされる文字の部分を指定 します。

文字 (C)

C の指定は、文字の完全な構造 (ゾーンおよび数字) がテストされることを指 示します。

ゾーン (Z)

Z の指定は、文字のゾーン部分がテストされることを指示します。 ゾーンの指 定によって、「文字」記入項目の上位 4 ビットが「位置」記入項目に指定された レコード位置の文字のゾーン部分と比較されます。 しかし、以下の 3 つの特殊な場合は例外です。

数字 (D)

D の指定は、文字の数字部分がテストされることを指示します。 その文字の下 位 4 ビットが「位置」記入項目に指定された文字と比較されます。

30、38、および 46 桁目 (文字)

この桁には、入力レコードの中で指定した位置の文字と比較される識別文字を記 入します。

レコード・タイプの検査は、常に最初に指定されたレコード・タイプから始ま ります。 レコード内のデータが 2 組以上のレコード識別コードと満たしている場 合には、満たしている最初のレコード・タイプによってレコード・タイプが決定されます。

ファイルに複数のレコード・タイプを指定する場合には、各入力レコードごと に固有の識別コードの組になるようにレコード識別コードをコーディングしなけ ればいけません。

AND 関係

AND 関係は、4 つ以上のレコード識別コードによってレコードが識別される場 合に使用されます。

AND 関係を使用するためには、最初の行に少なくとも 1 つのレコード識別コー ドを入れ、残りのレコード識別コードはその後の行に続けて入れますが、使用す る各追加行の 16 から 18 桁目に AND をコーディングしてください。 16 から 18 桁目に AND が入っている各行の 7 から 15、19 から 20、および 46 から 80 桁目はブランクでなけ ればなりません。 順序およびレコード識別標識は、グループの最初の行に指定さ れ、追加の行に指定することはできません。

入力仕様書で使用できる AND/OR 行の数に制限はありません。

OR 関係

OR 関係は、2 つ以上のレコード・タイプに共通のフィールドがある場合に使 用されます。

OR 関係を使用するためには、16 から 17 桁目に OR を入れてください。 7 から 15、18 から 20、および 46 から 80 桁目はブランクでなければなりません。 レコード識別標識は 21 から 22 桁目に記入することができます。 標識の指定があり、OR 行にコーディングされたレコード識別コードが満たされた 場合には、その行の 21 から 22 桁目に指定された標識がオンに設定されます。 標識が指定されていなければ、前の行の標識がオンに設定されます。

入力仕様書で使用できる AND/OR 行の数に制限はありません。