伝票形式フォーマットとは、「ヘッダレコード」、「明細レコード」、「トレーラレコード」という異なるレイアウトの順に構成される、固定長のレコードの集合体です。これらのレコードのひとまとまりを1伝票と呼びます。
ヘッダレコード、明細レコード、トレーラレコードを識別するための値を「レコード区分」といいます。ヘッダレコード、明細レコード、トレーラレコードには、それぞれの先頭から同じバイト位置に同じバイト数のレコード区分があり、その値の違いによりレコードの違いを判別します。
各レコード長の公約数を「基本レコード長」といいます。基本レコード長を定義し、各レコードのレコード長が基本レコード長の等数倍であれば、それぞれのレコード長は異なっていてもかまいません。
各レコードの階層構造を示す値を「レベル」といいます。
ヘッダレコード、明細レコード、トレーラレコードは複数の種類を定義することができます。また、ヘッダレコードとトレーラレコードはペアで定義します。なお、トレーラレコードは省略可能なので、ヘッダレコードとトレーラレコードの数は一致していなくてもかまいません。
先頭の階層のヘッダレコードを「ファイルヘッダ」、2番目以降を「伝票ヘッダ」と呼びます。ヘッダレコードにはそれぞれレベルをつけて管理します。レベルには先頭階層から順に、1~9を設定します。したがって、ファイルヘッダはレベル1で固定し、伝票ヘッダにはレベル2~9を設定してください。
同様に、トレーラレコードも、最後尾を「ファイルトレーラ」、最後尾から2番目以前を「伝票トレーラ」と呼びます。レベルはヘッダレコードと対応するので、「ファイルトレーラ」はレベル1で固定し、「伝票トレーラ」は後方から順に2~9を設定してください。
明細レコードは一部を省略することができます。
明細レコードを複数種類定義した場合、明細レコードにはレベルがないので、複数の明細レコードは連続しています。連続している明細レコードの一部を省略可能にすることもできます。
伝票形式フォーマットでは「ブロック長」を指定する必要があります。すべてのレコードの合計バイト数がブロック長の等数倍にならない場合、その差のバイト数に空白が付加されます。
また、伝票形式フォーマットが入力の場合は、空白を外してから、処理します。
ポイント
伝票形式フォーマットの1つのレコードは、一般フォーマットと同等です。
1つの伝票形式フォーマットの中に指定できるレコード数の最大は20個です。
レコード区分にはワイルドカードの“?”が指定できます。“?”は任意の1バイト文字が指定されたものと判断します。2バイト文字に使用する場合には“??”と指定します。
例1) “AA?”が指定された場合、“AAA”も“AAB”も対象になります。
例2) “小??” が指定された場合、“小一”も“小二”も対象になります。
登録方法
[伝票形式フォーマット登録]画面で、以下の内容を設定します。
伝票形式ID
ブロック長
基本レコード長
判断位置、判断桁数
フラットID
レコード種別
生成(必須/転記あり時だけ)
レベル
条件
伝票形式フォーマットは、登録済みの一般フォーマットを組み合わせて定義します。
伝票を構成する一般フォーマットの「フラットID」を並び順に定義し、フラットIDごとにレコードの識別方法、および必須レコードかどうかを定義します。そして、1つの伝票形式フォーマットを「伝票形式ID」で管理します。
図5.14 伝票形式フォーマット
伝票形式フォーマットは「ヘッダレコード」、「明細レコード」、「トレーラレコード」で構成され、それぞれ一般フォーマット登録で登録されているフラットIDを使っています。伝票内の順番どおりに、フラットIDを並べて登録します。
それぞれのレコードは、先頭から同じ位置に同じ桁数の項目をもち、その値によってレコードを識別します。その項目の先頭からの位置を「判断位置」、桁数を「判断桁数」と呼びます。また識別する値を「条件」と呼びます。
図5.15 複数の明細レコードがある場合の伝票形式フォーマット
図5.16 複数の明細レコードがある場合の登録例
一般フォーマット登録で登録したフラットIDを、正しい順序に指定します。
伝票形式の登録方法の詳細は、“ISI Formatmanagerクライアント(FEDIT/FL-TABLE)ヘルプ”、および“ ISI Formatmanagerクライアント(FEDIT/FL-TABLE)チュートリアル”を参照してください。