レビュー指摘 #11919 » KS60151_詳細設計書 (1).md
KS60151 詳細設計書
| 項目 | 内容 |
|---|---|
| プログラムID | KS60151(ソース名 KS60151P) |
| プログラム名 | 新請求書 電子帳票配信(特積用) |
| 言語 | PL/I(OPTIONS(MAIN)) |
| 起動JOB | DAISEQ4J ステップNo.9 |
| 作成日 | 2026/10/09(2026/10/13 6.5 控え/送付用の違いを追加) |
| 作成方法 | ソースコードからのリバース作成 |
前提
- INCLUDEメンバーのうち、以下は添付ソースを展開して解析した。
- SQHAIDAA/SQHAIDAB/SQHAIDAC/SQHAIDAD(ご指示の SQHADAA~SQHADAD に相当。請求明細印刷データのレコード型)
- DDPTENMS(店所マスター)
- BANKMAST(銀行マスター)
- SSYUPRNT(優先印刷マスター。添付があったため併せて展開)
- 外部サブルーチン LKN0010 はソースがないため、ブラックボックス(BB)として扱う。
- 引数(店所CD → 集約店所CD)の意味は、呼出し側の使い方から推定した。
- 印刷イメージ(6章)の値はすべて架空のサンプルである。桁位置は、ソースの出力レコード定義から機械的に算出しており、正確である。
- ★印は、ソースから読み取れる潜在的な問題点または注意点を示す。
1. 概要
1.1 機能
- 請求明細印刷データ(SQHAIDA)を読み込み、新書式の請求書(1ページ50行、プレ印刷帳票)を編集して、2系統のSYSOUTに出力する。出力先は電子帳票(A-SPOOL)である。
- OUTFILE(控え):全件を出力する。
- OUTFIL2(送付用):明細不要顧客(優先印刷マスターの UPRNASKB='6')を除いて出力する。
- 1行目に出力用店所CD(OT1TNCD)を埋め込み、A-SPOOL側での振分けキーにする。
- 送付用では、集約店所の店所CD(LKN0010 で取得)に置き換える。
- 置き換えないケース:自店出力店所(ALTFILE に登録された店所)、および優先印刷顧客で自店所出力の顧客。
- 鑑部:請求金額、顧客住所、荷主名、発行店(店所マスター)、振込銀行(銀行マスター)を編集する。
- 明細部:送り状単位の運賃・料金を印字する。検品料明細は専用の書式で上書きする。
- 合計部:ページ小計、区分計、総合計を印字する。
- 2008/09/20以降の請求(期間至 > 080919)では、サーチャージ(転嫁料)の見出しを印字する。
1.2 処理概要図
ADG.ALTLIB(SEQPRTNC) ─┐(自店出力店所テーブル)
▼
SQHAIDA(WORK0635) ─▶ KS60151 ─┬─▶ OUTFILE SYSOUT=(E,KS601511,99) 控え(全件)
▲ ▲ ▲ └─▶ OUTFIL2 SYSOUT=(E,KS601512,99) 送付用
VKTENMS ─────┘ │ │
VKBANKM ────────┘ │ LKN0010(BB:集約店所CD取得)
VKSYUPR ───────────┘
2. 外部インターフェース
2.1 ファイル一覧
| DD名 | 編成/属性 | 入出力 | 内容 | レコード |
|---|---|---|---|---|
| ALTFILE | 順次 RECORD INPUT | 入力 | 自店出力店所テーブル(JCL:ADG.ALTLIB(SEQPRTNC)) | ALTAREA 80バイト(先頭4バイト=店所CD) |
| SQHAIDA | 順次 RECORD INPUT(可変長) | 入力 | 請求明細印刷データ(JCL:WORK0635) | INAREA CHAR(466) VAR。A~D型 |
| VKTENMS | VSAM KSDS KEYED DIRECT | 入力 | 店所マスター | DDPTENMS 170バイト。キー=店所CD 4桁 |
| VKBANKM | VSAM KSDS KEYED DIRECT | 入力 | 銀行マスター | BANKMAST 200バイト。キー11桁=銀行CD 7桁+店所CD 4桁 |
| VKSYUPR | VSAM KSDS KEYED DIRECT | 入力 | 優先印刷マスター | SSYUPRNT 40バイト。キー=荷主CD 7桁 |
| OUTFILE | 順次 OUTPUT ENV(CTLASA) | 出力 | 請求書 控え | 133バイト(ASA制御文字+132桁) |
| OUTFIL2 | 順次 OUTPUT ENV(CTLASA) | 出力 | 請求書 送付用 | 同上 |
| SYSPRINT | - | 出力 | DISPLAY メッセージ | - |
2.2 JCL対応(DAISEQ4J No.9)
| DD | JCL指定(要旨) | 備考 |
|---|---|---|
| SQHAIDA | WORK0635 | 前ステップで作成された請求明細印刷データ |
| ALTFILE | ADG.ALTLIB(SEQPRTNC) | 店所CDテーブル(最大100件) |
| OUTFILE | SYSOUT=(E,KS601511,99) | 控え。ライター名 KS601511 |
| OUTFIL2 | SYSOUT=(E,KS601512,99) | 送付用。ライター名 KS601512 |
| MDMIKAN 等 | - | プログラム内に宣言なし。LKN0010(BB)が使用するものと推定 |
2.3 外部ルーチン
| 名称 | 呼出し | 引数 | 推定機能 |
|---|---|---|---|
| LKN0010(BB) | CALL LKN0010(SQHATNCD, MISYU_TC) |
IN:店所CD PIC 4桁/OUT:MISYU_TC PIC'(4)9' | 店所CDから集約(未収)店所CDを取得する |
- 呼出し条件:見出し1の処理で、店所マスターのキャッシュが入れ替わった(店所CDが前回と異なる)とき、かつ当該店所が ALTFILE テーブルに存在しないとき。
3. データ定義
3.1 入力レコード(SQHAIDA)の型
- 全型で共通の位置にキー部がある:年月、店所、連番、頁、行、DTID、SKIP、NEW(NPAG/NLIN/NSKP)。
- 処理の振分けには NLIN(新行番号) と DTID(データID) を使う。
| 型 | INCLUDE | DTID | 用途 | 長さ |
|---|---|---|---|---|
| A | SQHAIDAA | 5 | 見出し1(荷主・期間・税区分等) | 59 |
| B | SQHAIDAB | 6 | 見出し2(鑑:金額・住所・名称・銀行) | 466 |
| C | SQHAIDAC | 0 | 明細(送り状) | 138 |
| D | SQHAIDAD | 3/9 | 計(ページ小計・区分計・総合計) | 88 |
- 各型は、可変長レコード INAREA に DEF で重ねて参照する。
- 長さは、各型の全項目の合計バイト数である(lay計算、パック10進は p/2+1 バイト)。
- レイアウトの詳細は付録B~Eを参照。
3.2 マスター
| マスター | 使用項目 | 用途 |
|---|---|---|
| DDPTENMS | VETNHTCD, VETNSRNM, VETNADNM, VETNPSNA/PSNB, VETNTLNO | 1行目の店略称、鑑の発行店住所・〒・TEL |
| BANKMAST | VBNKNAMG, VBNKSNMG | 振込銀行名・支店名(漢字) |
| SSYUPRNT | UPRNNICD, UPRNASKB | 明細不要('6')/自店所出力(' ')の判定 |
3.3 主要ワーク
| 名称 | 属性 | 初期値 | 内容 |
|---|---|---|---|
| EOF_SW | BIT(1) | '1'B | SQHAIDA 終了で '0'B |
| VS_SW | BIT(1) | '1'B | VSAM READ 成否(ON KEY で '0'B) |
| ENDSW / TABCNT | BIT / BIN(15) | '1'B / 0 | ALTFILE 読込制御・件数 |
| TAB_PRTN(100) | CHAR(4) | - | 自店出力店所テーブル |
| PRTN_FLG | CHAR(1) | - | '1':自店出力店所(ALTFILE に該当) |
| JITN_FLG | CHAR(1) | - | '1':優先印刷顧客で自店所出力 |
| OUT_SW | CHAR(1) | なし | '1':送付用にも出力/'0':控えのみ |
| MISYU_TC | PIC'(4)9' | - | LKN0010 の戻り(集約店所CD) |
| TAX_KB1 / TAX_KB2 | PIC'9' | 0 / 0 | SQHAZKKB / SQHAZKK1(税区分) |
| KARI_KB | PIC'9' | 1 | SQHAKMKB(1:本締、他:仮締) |
| TENK_FLG | CHAR(1) | - | '1':サーチャージ表示対象(期間至 > 080919) |
| MOTCYA_WK | CHAR(1) | '0' | 直前明細の元着区分(元払計/着払計の見出し判定) |
| LINE_CNT | FIXED DEC(3) | 50 | ページ内の現在行 |
| WKP_SQNO | SQNO_1_7 + SQNO_8_5 | - | SQHASQNO を荷主7桁+枝番5桁に分解 |
| WK_JKA | CHAR(126) | - | 住所・名称の連結編集ワーク |
| BANKWK | CHAR(48) | - | 銀行行の編集ワーク(POS DEF 多数) |
| SPACE | CHAR(133) | 空白 | 空行出力用 |
3.4 出力レコード
- 133バイトの印字行構造は、次のとおりである。
- OUT_1, OUT_2, OUT_4~OUT_12, OUT_10_2~OUT_12_2(2ページ目以降)
- MIDK_1/2, MID_SUR1/2, MID_KGO(見出し)
- MEISAI, KNP_MEISAI(明細)
- KEI, KNP_KEI(計)
- 項目ごとの位置は付録Aを参照。
4. 処理フロー
開始
├─ ON条件設定(ENDFILE(SQHAIDA)、KEY(VKTENMS/VKBANKM/VKSYUPR))
├─ OPEN(全ファイル)
├─ 前処理:ALTFILE を全件読込 → TAB_PRTN(1..100)
│ 101件目以降は DISPLAY して打切り
├─ SQHAIDA 初回READ
│ SQHAEYMD > 190610 なら OT2KOME(西暦表示の案内文)を空白にする
├─ DO WHILE(EOF_SW)
│ SELECT(SQHANLIN)
│ ├ 00 ─┬ DTID=5 → 5.2 見出し1(1~2行目)
│ │ ├ DTID=6 → 5.3 見出し2(4~12行目+13~14行目)
│ │ └ その他 → 無視
│ ├ 90,98 → DTID=3 のとき 5.6 検品計
│ ├ 91,99 → DTID=3(91/99)、DTID=9(99)のとき 5.5 通常計
│ └ その他 → DTID=0 のとき 5.4 明細行
│ SQHAIDA READ
├─ CLOSE(全ファイル)
終了
- 出力は、すべて「OUTFILE に WRITE → OUT_SW='1' なら同じ行を OUTFIL2 にも WRITE」の組で行う(以下「両出力」と記す)。
5. 処理詳細
5.1 前処理
- ALTFILE を READ し、ALT_PRTN(先頭4バイト)を TAB_PRTN(TABCNT) に格納する。これを ENDFILE まで繰り返す。
- TABCNT が101に達したら、
!!! TABL OVER LAST PRTN =>+TAB_PRTN(100) を DISPLAY して読込を打ち切る。- ★ この時点で TABCNT=101 のままになる。後続の
DO II=1 TO TABCNTが TAB_PRTN(101) を参照し、範囲外アクセスになる(SUBSCRIPTRANGE は無効が既定)。
- ★ この時点で TABCNT=101 のままになる。後続の
- ALTFILE は、メインの OPEN 文に含まれたうえで再度 OPEN される(既オープンのため実害なし)。前処理後に CLOSE され、終了時の CLOSE にも含まれている。
- SQHAIDA を初回 READ する。SQHAEYMD > 190610 なら、OT2KOME(2行目の「19年05月分より西暦表示」の案内)を空白にする。
- 判定は先頭レコードのみで行う。
- ★ SQHAIDA が0件の場合、INAREA は未設定のまま比較される(実害は小さい)。
5.2 見出し1(NLIN=00, DTID=5)
| 手順 | 処理 |
|---|---|
| 1 | LINE_CNT=0。OUT_1 をクリアし、OT1ASA='1'(改ページ)にする。WK_SQNO=SQHASQNO とする(→ SQNO_1_7 荷主CD、SQNO_8_5 枝番)。 |
| 2 | 優先印刷マスター:SYUKEY=SQNO_1_7 が UPRNNICD と異なる場合のみ以下を行う。 |
| ・OUT_SW='1'、JITN_FLG='0' にして VKSYUPR を READ する。 | |
| ・該当ありで UPRNASKB='6' → OUT_SW='0'(明細不要顧客。送付用に出力しない)。 | |
| ・該当ありで UPRNASKB=' ' → JITN_FLG='1'(自店所出力)。 | |
| 3 | OT1NICD=荷主CD。OT1SQNO=枝番(99999 の場合は '-----')。 |
| 4 | 本締(SQHAKMKB=1)なら OT1KAS1/2 は空白、仮締なら '('/')' で枝番を括る。 |
| 5 | 店所マスター:TENKEY=SQHATNCD が VETNHTCD と異なる場合のみ以下を行う。 |
| ・VKTENMS を READ する。該当なしなら VETNSRNM=' ??? '。 | |
| ・PRTN_FLG='0' にし、TAB_PRTN(1..TABCNT) に SQHATNCD があれば PRTN_FLG='1'。 | |
| ・PRTN_FLG='0' なら CALL LKN0010(SQHATNCD, MISYU_TC)。 | |
| 6 | OT1ATNM=VETNSRNM(店略称)。OT1TNCD=SQHATNCD(A-SPOOL 振分用)。 |
| 7 | 月:SQHAEYMD=250105 なら OT1MMM='01'、それ以外は SQHAYYMM の先頭2桁。 |
| 8 | OUT_SW='0' なら OT1MHKB='#'(控えに明細不要の目印)。 |
| 9 | 期間:SQHASYMD/SQHAEYMD を YY・MM・DD に分解し、OT1SYY/SMM/SDD、OT1EYY/EMM/EDD に設定する(西暦下2桁のまま)。 |
| 10 | OT1PAGE=SQHANPAG。 |
| 11 | OUTFILE に OUT_1、OUT_2 を WRITE する。LINE_CNT=2。 |
| 12 | OUT_SW='1' の場合:PRTN_FLG='0' かつ JITN_FLG='0' なら OT1TNCD=MISYU_TC に置き換え、OUTFIL2 に OUT_1、OUT_2 を WRITE する。 |
| 13 | TAX_KB1=SQHAZKKB、TAX_KB2=SQHAZKK1、KARI_KB=SQHAKMKB とする。SQHAEYMD > 080919 なら TENK_FLG='1'、それ以外は空白。 |
- ★ 手順2・5は、キャッシュキーが同じ場合に READ を省略する。この場合、OUT_SW/JITN_FLG/PRTN_FLG/MISYU_TC は前回の値を引き継ぐ。
- 先頭レコードでは、UPRNNICD/VETNHTCD が未初期化のまま比較される。
- 万一一致した場合は、OUT_SW 未設定のまま進む(通常は起こらない)。
- ★ 手順12の置換は OUT_1 を直接書き換える。OUTFILE へは書込み済みのため影響はない。
5.3 見出し2(NLIN=00, DTID=6)
5.3.1 1ページ目(SQHBNPAG ≦ 1)
| 行 | 編集内容 |
|---|---|
| 3 | 空行 |
| 4 | 〒:SQHBYUNN(7桁)が有効なら 'NNN-NNNN'、それ以外は SQHBYUNO(旧5桁)で編集する。ご請求額=本締なら SQHBUNTI+RYOK+TTAX+HOKR、仮締なら0(ゼロサプレスで空白印字)。 |
| 5~8 左 | 顧客住所:JS_EDIT_SUB_RTN(5.7.1)で JKA1~3 を連結し、28バイト×4行に分割する。8行目が空なら1行下げる。 |
| 6 右 | 発行店名 SQHBHTEN。'(営)' は '営業所' に置換する。 |
| 7 | 鑑金額:運賃、料金、小計、消費税、保険料、合計、サーチャージ(TENK_FLG='1' のとき)。仮締ならすべて0。7行目右に店〒(VETNPSNA-VETNPSNB)。 |
| 8~10 右 | 店住所:VETNADNM の 2~23、24~45、46~67 バイト目を各行に印字する。 |
| 10~12 左 | 荷主名:NM_EDIT_SUB_RTN(5.7.2)で28/28/16バイトに分割する。名称先頭が X'0E' の場合のみ SO/SI を付加する。 |
| 10~11 中 | 振込銀行(5.3.3) |
| 11 右 | TEL:店所1301 は '03(3649)8167' を固定印字、それ以外は VETNTLNO。SQHBTKB3=1 なら振込区分 '*'。 |
| 12 | '℡'+顧客電話番号 SQHBDTEL |
- 4~12行目を両出力し、LINE_CNT=12 とする。
- 店所マスターは SQHBTNCD で再確認し、VETNHTCD と異なれば READ する。
5.3.2 2ページ目以降(SQHBNPAG > 1)
- 3~9行目は空行(7行)とする。
- 10~12行目は OUT_10_2~OUT_12_2 に荷主名のみを印字する。この場合は SO/SI を常に付加する。
- LINE_CNT=12。
- ★ 1ページ目(名称先頭が X'0E' のときのみ SO/SI を付加)と扱いが異なる。半角名称の場合、2ページ目以降では前後に SO/SI が入る。
5.3.3 振込銀行の編集(10~11行目)
- 銀行マスターキー=SQHBBANK(7桁)+SQHBTNCD(4桁)。2行目は SQHBBAN1+SQHBTNCD で検索する。
- 該当なしの場合、銀行名は空白のまま(メッセージなし)。
- 銀行名=VBNKNAMG+VBNKSNMG(漢字)。SO/SI 込みの長さ I で配置を決める。
| 登録数 | 10行目 | 11行目 |
|---|---|---|
| 1行(SQHBBAN1=0) | 銀行名 | 口座種別(1:普通/2:当座)+'口座番号'+口座番号7桁 |
| 2行 | 銀行1:名称+種別+'口座№'+番号 | 銀行2:同左 |
- 2行時の配置は、名称長 I により4パターンある(I < 25、< 29、< 31、それ以上)。名称が長いほど、種別・番号を右へずらすか短縮表記にする。
5.3.4 13~14行目
| 条件 | 13行目 | 14行目 |
|---|---|---|
| SQHBKENP=1(検品あり) | MIDK_1(検品見出し) | MIDK_2 |
| 上記以外、TENK_FLG='1' | 空行 | MID_SUR1('サーチャージ'、印字桁78) |
| 上記以外 | 空行 | 空行 |
- LINE_CNT=14。
5.4 明細行(NLIN=その他, DTID=0)
| 印字項目 | 編集 |
|---|---|
| 送り状番号 | SQHCOKNO 11桁を '#####-######' |
| 元着 | SQHCMCKB 1:'元'、2:'着'(MOTCYA_WK に保存) |
| 月日 | SQHCMMDD 'MMDD' |
| 地名/名称 | SQHCCHNM 12バイト/SQHCSHNM 14バイト |
| 個数・重量 | SQHCKOSU, SQHCJRYO |
| 運賃 | 下表(税区分)参照 |
| 集配料・航送料・転嫁料・その他・保険・立替・割引 | SQHCSHUH, KOSO, DAIB, SONN, HOKN, TATE, WARI |
| 税 | SQHCZIKN(税区分により0) |
| 合計 | 運賃+各料金+税(税区分により) |
| 区分・店・備考 | SQHCTSKB, SQHCTENS, SQHCBIKO |
- 負値は '-' 付きピクチャーの DEF 重ねで編集する。
税区分による編集:
| TAX_KB2 | TAX_KB1 | 運賃欄 | 税欄 | 合計 |
|---|---|---|---|---|
| 1 | - | SQHCUNCN | 0 | 税を含まない |
| ≠1 | 0 | SQHCUNCN | SQHCZIKN | 税を含む |
| ≠1 | ≠0 | SQHCUNCN+SQHCZIKN | 0 | 税を含む |
備考欄の加工:
- 既定:店欄=SQHCTENS、備考欄=SQHCBIKO の1~5バイト目。
- SQHCBIKO(9,4)='KKKK' の場合(軽油引取税転嫁分の表示):店欄=BIKO(1,4)、備考欄=BIKO(5,4)。
- ★ 前工程が 'KKKK' 書式で備考を設定している前提である。KS60144 系の書式と一致しない値は、通常の備考として扱われる(クロスチェック要)。
- 上記以外で、備考≠空白、区分=空白、かつ検品明細でない場合:
- BIKO(8,4)='着' → 'チヤク '、BIKO(6,6)='必着' → 'ヒツチヤク ' に置換する。
- 区分欄=BIKO(1,2)、店欄=BIKO(3,4)、備考欄=BIKO(7,4) に分けて印字する。
- ★ 入力の SQHCBIKO 自体を書き換える(後続処理への影響はない)。
検品明細(SUBSTR(SQHCSHNM,14,1)='~' かつ SQHCMCKB=2):
- 元着欄は '検' とする。
- KNP_MEISAI を重ねて '運送送状⇒'、TEL(SQHCTELN)+備考(10,3)、GOKEI1/GOKEI2(その他料金の合計等)を印字する。
- 重ねていない桁は、通常明細の値がそのまま残る。
明細を両出力し、LINE_CNT+1 とする。
5.5 通常計(NLIN=91/99)
対象:(91,DTID=3) ページ小計、(99,DTID=3) 区分計/元着計、(99,DTID=9) 総合計。
TENK_FLG='1'(2008/09/20以降)の場合:
- LINE_CNT < 47 なら、空行を (SQHDNSKP−1) 行出力する(47行目まで送る)。
- LINE_CNT < 48 なら、48行目に MID_SUR2('サーチャージ'、印字桁72)を出力し、LINE_CNT=48 とする。
- ページ小計(49行目):KEI_SQKB に区分表示 SQHDSQKB を設定する(PKBN='1' の場合を除く)。
- 区分計/総合計(50行目):KEI_HED に7章の見出しを設定する。
- 金額は明細と同じ税区分ルールで設定し、KEI を両出力する。LINE_CNT+1。
TENK_FLG≠'1'(旧請求)の場合:
- 48行目まで空行を送り、48/49行目に計を印字する(旧レイアウト。サーチャージ見出しなし)。
注意:
- KEI の各金額欄は、MEISAI より桁が広く、1~2桁右にずれている(付録A参照)。
- ★ DTID=1/2(元払計・着払計)のレコードは、どの分岐にも該当せず印字されない。KS60144 設計書 6.7 の印刷イメージ(元払計/着払計を印字)とは整合しない。
5.6 検品計(NLIN=90/98, DTID=3)
- LINE_CNT < 47 なら、空行を (SQHDNSKP−1) 行出力する。
- LINE_CNT < 48 なら、48行目に MID_KGO(検品料の合計見出し)を出力し、LINE_CNT=48 とする。TENK_FLG に関係なく出力する。
- 98(検品合計):
- LINE_CNT < 49 なら空行を出力し、LINE_CNT=49 とする(ページ計行をスキップ)。
- KKEI_HED='検品料 計' を設定する。
- 90(ページ小計):KEI_SQKB='検品料' を設定する。
- KNP_KEI の重ね定義で、個数・重量・その他・税・合計を設定する。
| TAX_KB1 | TAX_KB2 | その他欄 | 税欄 | 合計 |
|---|---|---|---|---|
| 0 | 1 | SONN | 0 | SONN+HOKN+SONT+WARI |
| 0 | ≠1 | SONN | ZIKN | 上記+ZIKN |
| ≠0 | 1 | SONN | 0 | SONN+HOKN+SONT+WARI |
| ≠0 | ≠1 | SONN+ZIKN | 0 | 上記+ZIKN |
- 運賃等は KS60140P 側で「その他」に集約済み(ソースのコメントより)。
- KEI を両出力し、LINE_CNT+1 とする。
5.7 サブルーチン
5.7.1 JS_EDIT_SUB_RTN(顧客住所 5~8行目)
- SQHBJKA1~3 を、2バイト文字単位の配列(JKA1_WK(16)/JKA2_WK(18)/JKA3_WK(25))として走査する。
- 空白で区切り、30バイト以内のセグメントを WK_JKA に連結する。
- 28バイト×4行(O5~O8)に割り付ける。8行目が空なら1行下げる。
- ★ 住所が長い場合、4行に収まらない部分は切り捨てられる。
5.7.2 NM_EDIT_SUB_RTN(荷主名 10~12行目)
- HEAD(法人格 6バイト)+NAME1(40)+空白2+NAME2 の44~63バイト目を WK_JKA に連結する。
- 空白位置で30バイト以内に分割し、X/Y/Z(各行の終端位置)を求める。
- 28/28/16バイトの3行に割り付ける。
- 2行目・3行目が空の場合は、下へ寄せる(シフト)。
- ★ 半角カナ名称で空白が1つの場合、区切り位置が1文字ずれる。
- ★ 3行目は16バイトしかないため、最大14バイトが切り捨てられることがある。
6. 帳票仕様(印刷イメージ)
6.1 ページ構成(新書式・1ページ50行)
| 行 | 内容 | 出力レコード |
|---|---|---|
| 1 | 荷主CD・枝番、店略称、店所CD、月、明細不要マーク、期間、頁(ASA '1') | OUT_1 |
| 2 | 西暦表示の案内(190610 以前のみ) | OUT_2 |
| 3 | 空行 | SPACE |
| 4 | 〒、ご請求額 | OUT_4 |
| 5~8 | 顧客住所 / 6行目右:発行店名 / 7行目:鑑金額・店〒 | OUT_5~OUT_8 |
| 8~10 右 | 店住所 | OUT_8~OUT_10 |
| 10~12 | 荷主名 / 10~11行目:振込銀行 / 11行目右:TEL・振込区分 / 12行目:℡ | OUT_10~OUT_12 |
| 13~14 | 検品見出し、またはサーチャージ見出し | MIDK_1/2・MID_SUR1 |
| 15~47 | 明細(最大33行) | MEISAI・KNP_MEISAI |
| 48 | 合計見出し(サーチャージ、または検品料) | MID_SUR2・MID_KGO |
| 49 | ページ小計 | KEI・KNP_KEI |
| 50 | 区分計・総合計 | KEI・KNP_KEI |
6.2 印刷イメージ(1ページ目)
- 左端の「行 |」はイメージ用の行番号であり、印字されない。
- ルーラーは印字桁(ASA制御文字を除いた1~132桁)である。
- 全角文字は2桁、SO/SI は1桁の空白として表示している。
行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
1 | 1234567 00001 テスト支店 1001 10 26 09 01 26 09 30 1
2 |
3 |
4 | 123-4567 2,750
5 |
6 | 東京都千代田区 テスト支店
7 | 架空町一丁目2番3号 2500 2500 250 2750 〒 100-0005
8 | サンプルビル5階 東京都架空区サンプル町
9 | 1丁目1番1号
10 | サンプル銀行 本店
11 | (株)サンプル商事 普通 口座番号 1234567 TEL:03-0000-0000
12 | ℡ 0000-00-0000
13 |
14 | サーチャージ
15 |12345-678901 元 0901 札幌市中央 サンプル シヨウテン 2 15 1500 150 1650 0101
16 |12345-678902 着 0905 大阪市北区 テスト シヨウジ 1 8 1200 300 150 1650 0101
17 | 0910* 一括付替 * -500 -50 -550 0101
| (明細行。新書式で最大33行:15~47行目)
47 |
48 | サーチャージ
49 | 3 23 2200 300 250 2750
50 | 送り状合計 3 23 2200 300 250 2750
6.3 印刷イメージ(2ページ目以降)
行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
1 | 1234567 00001 テスト支店 1001 10 26 09 01 26 09 30 2
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | (株)サンプル商事
12 |
13 |
14 | サーチャージ
| (15行目以降は1ページ目と同じ)
6.4 帳票の留意点
- プレ印刷帳票を前提としている。項目名(「運賃」「合計」など)の大半はプログラムでは印字しない(枠・見出しは用紙に印刷済み)。
- 仮締の場合、鑑の金額は0となり、ゼロサプレスで空白印字される。枝番は括弧付きになる。
- 控え(OUTFILE)と送付用(OUTFIL2)の差異:
- 1行目の店所CD:送付用は集約店所CD になる場合がある。
- 明細不要マーク '#':控えのみ。送付用には出力されない。
6.5 2種類の帳票(控え/送付用)の違い
本プログラムは、同じ請求書を2本の SYSOUT に出力します。
| 項目 | 控え | 送付用 |
|---|---|---|
| DD名 | OUTFILE | OUTFIL2 |
| SYSOUT(JCL) | クラス E、ライター KS601511 | クラス E、ライター KS601512 |
| 用途(推定) | 店所の控え(保管・確認用) | 顧客へ送付する請求書 |
| 出力対象 | 全請求先 | 明細不要の顧客(優先印刷マスター UPRNASKB='6')を除く |
| 1行目の店所CD(OT1TNCD、印字桁33~36) | 入力の店所CD(SQHATNCD) | 集約店所CD(LKN0010 で取得した MISYU_TC)に置き換える。ただし自店出力の店所と自店所出力の顧客は置き換えない |
| 1行目の明細不要マーク '#'(印字桁57) | 明細不要の顧客に付く | 付かない(その顧客は出力されないため) |
| 2行目以降(鑑・明細・計) | 同じ | 同じ |
| 印刷イメージ | 6.2・6.3 のとおり | 6.2・6.3 と同じ(1行目の店所CDだけが異なる場合がある) |
- 1行目の店所CDは、電子帳票(A-SPOOL)の振分けキーです(ソースコメント「A-SPOOL振分用」)。控えは入力の店所に、送付用は集約店所に配信されると考えられます。集約店所で、送付用の請求書をまとめて印刷・発送する運用と推定されます。
- 置き換えの条件は次のとおりです(すべて満たすとき送付用の店所CDを MISYU_TC にする)。
- 店所が ALTFILE(ADG.ALTLIB(SEQPRTNC):自店出力の店所の一覧)に登録されていない(PRTN_FLG='0')
- 顧客が優先印刷マスターで「自店所出力」(UPRNASKB=空白)ではない(JITN_FLG='0')
- 見出し1は各ページの先頭で出力されるため、この違いはすべてのページの1行目に現れます。
- MISYU_TC の値は外部ルーチン LKN0010(BB)の戻り値です。印刷イメージの集約店所CD「1000」は架空の値です。
1行目の比較イメージ(ケース別)
ケース1:通常の顧客・集約される店所(ALTFILE に登録なし)
|----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
OUTFILE 控え | 1234567 00001 テスト支店 1001 09 26 09 01 26 09 30 1
OUTFIL2 送付用 | 1234567 00001 テスト支店 1000 09 26 09 01 26 09 30 1
ケース2:自店出力の店所(ALTFILE に登録あり)
|----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
OUTFILE 控え | 1234567 00001 テスト支店 1001 09 26 09 01 26 09 30 1
OUTFIL2 送付用 | 1234567 00001 テスト支店 1001 09 26 09 01 26 09 30 1
ケース3:優先印刷マスターで自店所出力の顧客(UPRNASKB=空白)
|----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
OUTFILE 控え | 1234567 00001 テスト支店 1001 09 26 09 01 26 09 30 1
OUTFIL2 送付用 | 1234567 00001 テスト支店 1001 09 26 09 01 26 09 30 1
ケース4:明細不要の顧客(UPRNASKB='6')
|----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
OUTFILE 控え | 1234567 00001 テスト支店 1001 09 # 26 09 01 26 09 30 1
OUTFIL2 送付用 | (出力されない)
- ケース2・3では、控えと送付用は完全に同じ内容になります。
- ケース4の顧客は、控えにだけ「#」付きで出力されます。
7. 計の見出し(KEI_HED)
| 条件 | 見出し |
|---|---|
| DTID=9 | 送り状合計 |
| HDID=0, PKBN=0/7/8 | 送り状合計 |
| HDID=0, PKBN=1 | MOTCYA_WK により 元払い計/着払い計/元着別計 |
| HDID=0, PKBN=2/3 | 請求区分計 |
| HDID=0, PKBN=4 | 着地計 |
| HDID=0, PKBN=5 | 着県計 |
| HDID=0, PKBN=6 | 日付計 |
| HDID=0, その他 | 計 |
| HDID=3 | 訂正計 |
| HDID=2 | 支払変更計 |
| HDID=9 | 検品料計 |
| HDID=4/5/6 | その他計 |
| HDID=その他 | ___計_ |
- ページ小計(49行目)は見出しなしで、KEI_SQKB に区分表示を設定する。
8. メッセージ
| 出力先 | メッセージ | 契機 |
|---|---|---|
| SYSPRINT(DISPLAY) |
!!! TABL OVER LAST PRTN =>+最終店所CD |
ALTFILE が100件を超えた |
9. 異常処理
| 事象 | 処理 |
|---|---|
| SQHAIDA ENDFILE | EOF_SW='0'B → ループを終了し、CLOSE して正常終了する |
| VSAM キーなし(ON KEY) | VS_SW='0'B。店所マスターは店略称='???'、銀行は空白、優先印刷はデフォルト(送付用に出力、自店所出力なし)。メッセージは出さない |
| その他のエラー | ON ERROR の定義なし。PL/I 標準のエラー処理(異常終了) |
| リターンコード | 設定なし(常に0) |
10. 留意事項(★)
- ALTFILE が101件以上の場合、TABCNT=101 で打ち切られる。その後のテーブル検索が添字範囲外(TAB_PRTN(101))を参照する。
- 旧形式のレコード(OUT21/22等)は NLIN が空白の可能性がある。SELECT(SQHANLIN) は数値比較のため、空白の扱いはコンパイラ依存である(CONVERSION の可能性)。
- ハードコードがある。
- SQHAEYMD=250105 で月='01'
- 店所1301 の TEL
- 西暦案内の終了 190610
- サーチャージ開始 080919
- 年は西暦下2桁で運用している(2000年問題対応のロジックはコメントアウト済み)。
- 名称・住所の分割で、文字が切り捨てられることがある。
- 半角カナで空白1個の場合、区切りがずれる。
- 名称の3行目は最大14バイトが欠落する。
- 住所が4行を超えた部分は欠落する。
- 店住所は68~71バイト目を印字しない。
- マスターのキャッシュ比較:先頭レコードでは、未初期化の UPRNNICD/VETNHTCD と比較される。OUT_SW は INIT なしである。
- マスターに該当がなくてもメッセージは出ず、処理は続行する。
- DTID=1/2(元払計・着払計)のレコードは印字されない(5.5参照)。
- 2ページ目以降の荷主名は、常に SO/SI が付加される(5.3.2参照)。
- 備考 'KKKK' の軽油表示は、前工程の備考書式に依存する(5.4参照)。
- 検品明細は KNP_MEISAI を部分的に重ねて印字する。重ねていない桁は、通常明細の値が残る。
11. 未使用項目
- ワーク:WK_MOJS1, WK_MOJS2, WK_SO, WK_SI, OLDSQNO, WCODE13, WCODE11, WCODE4, KK, LL, WK_TNCD(クリアのみ), VETNADNM_68_04
- VKCHINM(地名マスター)の READ はコメントアウトされている。
- DDPTENMS/BANKMAST の大半の項目(付録の「用途」欄が空の項目)
- 旧書式用の項目(SQHASKIP, SQHALINE, SQHAPAGE 等。新書式の NPAG/NLIN/NSKP のみを使用)
付録A 印字行 項目位置表
- レコード位置は ASA を1とした位置、印字桁は ASA を除いた桁(=レコード位置−1)である。
- KNP_MEISAI は MEISAI に重ねる定義(ASA なし)である。
| 行構造 | 項目 | レコード位置 | 長さ | 印字桁 |
|---|---|---|---|---|
| OUT_1 | OT1ASA | 1 | 1 | ASA |
| OUT_1 | SP11 | 2 | 1 | 1 |
| OUT_1 | OT1NICD | 3 | 7 | 2~8 |
| OUT_1 | SP12 | 10 | 2 | 9~10 |
| OUT_1 | OT1KAS1 | 12 | 1 | 11 |
| OUT_1 | OT1SQNO | 13 | 5 | 12~16 |
| OUT_1 | OT1KAS2 | 18 | 1 | 17 |
| OUT_1 | OT1ATNM | 19 | 14 | 18~31 |
| OUT_1 | SP13 | 33 | 1 | 32 |
| OUT_1 | OT1TNCD | 34 | 4 | 33~36 |
| OUT_1 | SP14 | 38 | 14 | 37~50 |
| OUT_1 | OT1MMM | 52 | 2 | 51~52 |
| OUT_1 | SP15 | 54 | 4 | 53~56 |
| OUT_1 | OT1MHKB | 58 | 1 | 57 |
| OUT_1 | SP16 | 59 | 39 | 58~96 |
| OUT_1 | OT1SYY | 98 | 2 | 97~98 |
| OUT_1 | SP17 | 100 | 1 | 99 |
| OUT_1 | OT1SMM | 101 | 2 | 100~101 |
| OUT_1 | SP18 | 103 | 1 | 102 |
| OUT_1 | OT1SDD | 104 | 2 | 103~104 |
| OUT_1 | SP19 | 106 | 6 | 105~110 |
| OUT_1 | OT1EYY | 112 | 2 | 111~112 |
| OUT_1 | SP1A | 114 | 1 | 113 |
| OUT_1 | OT1EMM | 115 | 2 | 114~115 |
| OUT_1 | SP1B | 117 | 1 | 116 |
| OUT_1 | OT1EDD | 118 | 2 | 117~118 |
| OUT_1 | SP1C | 120 | 9 | 119~127 |
| OUT_1 | OT1PAGE | 129 | 4 | 128~131 |
| OUT_1 | SP1D | 133 | 1 | 132 |
| OUT_2 | OT2ASA | 1 | 1 | ASA |
| OUT_2 | SP21 | 2 | 90 | 1~90 |
| OUT_2 | OT2KOME | 92 | 42 | 91~132 |
| OUT_4 | OT4ASA | 1 | 1 | ASA |
| OUT_4 | SP41 | 2 | 3 | 1~3 |
| OUT_4 | OT4PSN1 | 5 | 3 | 4~6 |
| OUT_4 | OT4PSNS | 8 | 1 | 7 |
| OUT_4 | OT4PSN2 | 9 | 4 | 8~11 |
| OUT_4 | SP42 | 13 | 55 | 12~66 |
| OUT_4 | OT4SQKN | 68 | 12 | 67~78 |
| OUT_4 | SP43 | 80 | 54 | 79~132 |
| OUT_5 | OT5ASA | 1 | 1 | ASA |
| OUT_5 | SP51 | 2 | 2 | 1~2 |
| OUT_5 | OT5JYU1_SO | 4 | 1 | 3 |
| OUT_5 | OT5JYU1 | 5 | 28 | 4~31 |
| OUT_5 | OT5JYU1_SI | 33 | 1 | 32 |
| OUT_5 | SP52 | 34 | 100 | 33~132 |
| OUT_6 | OT6ASA | 1 | 1 | ASA |
| OUT_6 | SP61 | 2 | 2 | 1~2 |
| OUT_6 | OT6JYU2_SO | 4 | 1 | 3 |
| OUT_6 | OT6JYU2 | 5 | 28 | 4~31 |
| OUT_6 | OT6JYU2_SI | 33 | 1 | 32 |
| OUT_6 | SP62 | 34 | 58 | 33~90 |
| OUT_6 | OT6TENK | 92 | 9 | 91~99 |
| OUT_6 | SP63 | 101 | 12 | 100~111 |
| OUT_6 | OT6HTNM | 113 | 16 | 112~127 |
| OUT_6 | SP64 | 129 | 5 | 128~132 |
| OUT_7 | OT7ASA | 1 | 1 | ASA |
| OUT_7 | SP71 | 2 | 2 | 1~2 |
| OUT_7 | OT7JYU3_SO | 4 | 1 | 3 |
| OUT_7 | OT7JYU3 | 5 | 28 | 4~31 |
| OUT_7 | OT7JYU3_SI | 33 | 1 | 32 |
| OUT_7 | SP72 | 34 | 14 | 33~46 |
| OUT_7 | OT7HUNT | 48 | 9 | 47~55 |
| OUT_7 | OT7HRYO | 57 | 8 | 56~63 |
| OUT_7 | OT7HSKE | 65 | 9 | 64~72 |
| OUT_7 | OT7HTAX | 74 | 8 | 73~80 |
| OUT_7 | OT7HHOK | 82 | 8 | 81~88 |
| OUT_7 | OT7HGKE | 90 | 9 | 89~97 |
| OUT_7 | OT7HSER | 99 | 8 | 98~105 |
| OUT_7 | OT7TJY1 | 107 | 24 | 106~129 |
| OUT_7 | SP74 | 131 | 3 | 130~132 |
| OUT_8 | OT8ASA | 1 | 1 | ASA |
| OUT_8 | SP81 | 2 | 2 | 1~2 |
| OUT_8 | OT8JYU4_SO | 4 | 1 | 3 |
| OUT_8 | OT8JYU4 | 5 | 28 | 4~31 |
| OUT_8 | OT8JYU4_SI | 33 | 1 | 32 |
| OUT_8 | SP82 | 34 | 73 | 33~105 |
| OUT_8 | OT8TJY2_SO | 107 | 1 | 106 |
| OUT_8 | OT8TJY2 | 108 | 22 | 107~128 |
| OUT_8 | OT8TJY2_SI | 130 | 1 | 129 |
| OUT_8 | SP83 | 131 | 3 | 130~132 |
| OUT_9 | OT9ASA | 1 | 1 | ASA |
| OUT_9 | SP91 | 2 | 105 | 1~105 |
| OUT_9 | OT9TJY3_SO | 107 | 1 | 106 |
| OUT_9 | OT9TJY3 | 108 | 22 | 107~128 |
| OUT_9 | OT9TJY3_SI | 130 | 1 | 129 |
| OUT_9 | SP92 | 131 | 3 | 130~132 |
| OUT_10 | OT10ASA | 1 | 1 | ASA |
| OUT_10 | SPA1 | 2 | 2 | 1~2 |
| OUT_10 | O10HNM1_SO | 4 | 1 | 3 |
| OUT_10 | O10HNM1 | 5 | 28 | 4~31 |
| OUT_10 | O10HNM1_SI | 33 | 1 | 32 |
| OUT_10 | SPA2 | 34 | 14 | 33~46 |
| OUT_10 | O10BAN1 | 48 | 48 | 47~94 |
| OUT_10 | SPA3 | 96 | 11 | 95~105 |
| OUT_10 | O10TJY4_SO | 107 | 1 | 106 |
| OUT_10 | O10TJY4 | 108 | 22 | 107~128 |
| OUT_10 | O10TJY4_SI | 130 | 1 | 129 |
| OUT_10 | SPA4 | 131 | 3 | 130~132 |
| OUT_11 | OT11ASA | 1 | 1 | ASA |
| OUT_11 | SPB1 | 2 | 2 | 1~2 |
| OUT_11 | O11HNM2_SO | 4 | 1 | 3 |
| OUT_11 | O11HNM2 | 5 | 28 | 4~31 |
| OUT_11 | O11HNM2_SI | 33 | 1 | 32 |
| OUT_11 | SPB2 | 34 | 14 | 33~46 |
| OUT_11 | O11BAN2 | 48 | 48 | 47~94 |
| OUT_11 | SPB3 | 96 | 10 | 95~104 |
| OUT_11 | O11TTEL | 106 | 24 | 105~128 |
| OUT_11 | O11FURI | 130 | 1 | 129 |
| OUT_11 | SPB4 | 131 | 3 | 130~132 |
| OUT_12 | OT12ASA | 1 | 1 | ASA |
| OUT_12 | SPB11 | 2 | 2 | 1~2 |
| OUT_12 | O12HNM3_SO | 4 | 1 | 3 |
| OUT_12 | O12HNM3 | 5 | 16 | 4~19 |
| OUT_12 | O12HNM3_SI | 21 | 1 | 20 |
| OUT_12 | O12TELH | 22 | 4 | 21~24 |
| OUT_12 | O12TELN | 26 | 12 | 25~36 |
| OUT_12 | SPB12 | 38 | 96 | 37~132 |
| OUT_10_2 | PAASA | 1 | 1 | ASA |
| OUT_10_2 | SPPA1 | 2 | 2 | 1~2 |
| OUT_10_2 | O10PNM1_SO | 4 | 1 | 3 |
| OUT_10_2 | O10PNM1 | 5 | 28 | 4~31 |
| OUT_10_2 | O10PNM1_SI | 33 | 1 | 32 |
| OUT_10_2 | SPPA2 | 34 | 100 | 33~132 |
| OUT_11_2 | PBASA | 1 | 1 | ASA |
| OUT_11_2 | SPPB1 | 2 | 2 | 1~2 |
| OUT_11_2 | O11PNM2_SO | 4 | 1 | 3 |
| OUT_11_2 | O11PNM2 | 5 | 28 | 4~31 |
| OUT_11_2 | O11PNM2_SI | 33 | 1 | 32 |
| OUT_11_2 | SPPB2 | 34 | 100 | 33~132 |
| OUT_12_2 | PCASA | 1 | 1 | ASA |
| OUT_12_2 | SPPC1 | 2 | 2 | 1~2 |
| OUT_12_2 | O12PNM3_SO | 4 | 1 | 3 |
| OUT_12_2 | O12PNM3 | 5 | 16 | 4~19 |
| OUT_12_2 | O12PNM3_SI | 21 | 1 | 20 |
| OUT_12_2 | SPPCC | 22 | 112 | 21~132 |
| MIDK_1 | M11ASA | 1 | 1 | ASA |
| MIDK_1 | M11SPA1 | 2 | 11 | 1~11 |
| MIDK_1 | M11MID1 | 13 | 34 | 12~45 |
| MIDK_1 | M11MID2 | 47 | 13 | 46~58 |
| MIDK_1 | M11MID3 | 60 | 32 | 59~90 |
| MIDK_1 | M11SPA2 | 92 | 42 | 91~132 |
| MIDK_2 | M12ASA | 1 | 1 | ASA |
| MIDK_2 | M12SPA1 | 2 | 11 | 1~11 |
| MIDK_2 | M12MID1 | 13 | 34 | 12~45 |
| MIDK_2 | M12MID2 | 47 | 13 | 46~58 |
| MIDK_2 | M12MID3 | 60 | 32 | 59~90 |
| MIDK_2 | M12SPA2 | 92 | 42 | 91~132 |
| MID_KGO | MKGASA | 1 | 1 | ASA |
| MID_KGO | MKGSPA1 | 2 | 24 | 1~24 |
| MID_KGO | MKGMID1 | 26 | 24 | 25~48 |
| MID_KGO | MKGSPA2 | 50 | 84 | 49~132 |
| MID_SUR1 | MS1ASA | 1 | 1 | ASA |
| MID_SUR1 | MS1SPA1 | 2 | 77 | 1~77 |
| MID_SUR1 | MS1MID1 | 79 | 7 | 78~84 |
| MID_SUR1 | MS1SPA2 | 86 | 48 | 85~132 |
| MID_SUR2 | MS2ASA | 1 | 1 | ASA |
| MID_SUR2 | MS2SPA1 | 2 | 71 | 1~71 |
| MID_SUR2 | MS2MID1 | 73 | 7 | 72~78 |
| MID_SUR2 | MS2SPA2 | 80 | 54 | 79~132 |
| MEISAI | MEI_ASA | 1 | 1 | ASA |
| MEISAI | MEI_OKNO1 | 2 | 5 | 1~5 |
| MEISAI | MEI_HIHN | 7 | 1 | 6 |
| MEISAI | MEI_OKNO2 | 8 | 6 | 7~12 |
| MEISAI | MEI_MCKB | 14 | 4 | 13~16 |
| MEISAI | MEI_MMDD | 18 | 4 | 17~20 |
| MEISAI | MEI_CHNM | 22 | 12 | 21~32 |
| MEISAI | MEI_SHNM | 34 | 14 | 33~46 |
| MEISAI | MEI_KOSU | 48 | 5 | 47~51 |
| MEISAI | MEI_JRYO | 53 | 6 | 52~57 |
| MEISAI | MEI_UNCN | 59 | 8 | 58~65 |
| MEISAI | MEI_SHUH | 67 | 6 | 66~71 |
| MEISAI | MEI_KOSO | 73 | 6 | 72~77 |
| MEISAI | MEI_DAIB | 79 | 6 | 78~83 |
| MEISAI | MEI_SONN | 85 | 6 | 84~89 |
| MEISAI | MEI_ZIKN | 91 | 6 | 90~95 |
| MEISAI | MEI_HOKN | 97 | 6 | 96~101 |
| MEISAI | MEI_TATE | 103 | 6 | 102~107 |
| MEISAI | MEI_WARI | 109 | 6 | 108~113 |
| MEISAI | MEI_GOKEI | 115 | 8 | 114~121 |
| MEISAI | MEI_TSKB | 123 | 2 | 122~123 |
| MEISAI | MEI_TENS | 125 | 4 | 124~127 |
| MEISAI | MEI_BIKO | 129 | 5 | 128~132 |
| KNP_MEISAI | KMEI_SP01 | 1 | 47 | 0~46 |
| KNP_MEISAI | KMEI_KOSU | 48 | 5 | 47~51 |
| KNP_MEISAI | KMEI_JRYO | 53 | 6 | 52~57 |
| KNP_MEISAI | KMEI_UNSOK | 59 | 12 | 58~69 |
| KNP_MEISAI | KMEI_TELN | 71 | 14 | 70~83 |
| KNP_MEISAI | KMEI_GOKEI1 | 85 | 6 | 84~89 |
| KNP_MEISAI | KMEI_ZIKN | 91 | 6 | 90~95 |
| KNP_MEISAI | KMEI_SP1 | 97 | 18 | 96~113 |
| KNP_MEISAI | KMEI_GOKEI2 | 115 | 8 | 114~121 |
| KNP_MEISAI | KMEI_SP2 | 123 | 6 | 122~127 |
| KNP_MEISAI | KMEI_BIKO | 129 | 5 | 128~132 |
| KEI | KEI_ASA | 1 | 1 | ASA |
| KEI | KEI_SP0 | 2 | 5 | 1~5 |
| KEI | KEI_SQKB | 7 | 10 | 6~15 |
| KEI | KEI_SP1 | 17 | 8 | 16~23 |
| KEI | KEI_HED | 25 | 12 | 24~35 |
| KEI | KEI_KOSU | 37 | 6 | 36~41 |
| KEI | KEI_JRYO | 43 | 7 | 42~48 |
| KEI | KEI_UNCN | 50 | 9 | 49~57 |
| KEI | KEI_SHUH | 59 | 7 | 58~64 |
| KEI | KEI_KOSO | 66 | 7 | 65~71 |
| KEI | KEI_DAIT | 73 | 7 | 72~78 |
| KEI | KEI_SONN | 80 | 7 | 79~85 |
| KEI | KEI_ZIKN | 87 | 7 | 86~92 |
| KEI | KEI_HOKN | 94 | 7 | 93~99 |
| KEI | KEI_SONT | 101 | 7 | 100~106 |
| KEI | KEI_WARI | 108 | 7 | 107~113 |
| KEI | KEI_GOKEI | 115 | 9 | 114~122 |
| KEI | KEI_SP2 | 124 | 10 | 123~132 |
| KNP_KEI | KKEI_ASA | 1 | 1 | ASA |
| KNP_KEI | KKEI_SP1 | 2 | 23 | 1~23 |
| KNP_KEI | KKEI_HED | 25 | 12 | 24~35 |
| KNP_KEI | KKEI_KOSU | 37 | 6 | 36~41 |
| KNP_KEI | KKEI_JRYO | 43 | 7 | 42~48 |
| KNP_KEI | KKEI_SP2 | 50 | 30 | 49~78 |
| KNP_KEI | KKEI_SONN | 80 | 7 | 79~85 |
| KNP_KEI | KKEI_ZIKN | 87 | 7 | 86~92 |
| KNP_KEI | KKEI_SP3 | 94 | 21 | 93~113 |
| KNP_KEI | KKEI_KEI | 115 | 9 | 114~122 |
| KNP_KEI | KKEI_SP4 | 124 | 10 | 123~132 |
付録B SQHAIDAA(見出し1)
| 02 | SQHAKEYB | (集団項目) | | 1 | 19 | |
| 03 | SQHAYYMM | PIC'(4)9' | | 1 | 4 | 請求月(先頭2桁) |
| 03 | SQHATNCD | PIC'(4)9' | | 5 | 4 | 店所マスター・出力用店所 |
| 03 | SQHABANG | (集団項目) | | 9 | 10 | |
| 04 | SQHARENB | PIC'(4)9' | | 9 | 4 | |
| 04 | SQHAPAGE | PIC'(4)9' | | 13 | 4 | |
| 04 | SQHALINE | PIC'(2)9' | | 17 | 2 | |
| 03 | SQHADTID | PIC'(1)9' | | 19 | 1 | 5:見出し1として処理 |
| 02 | SQHASKIP | PIC'(2)9' | | 20 | 2 | |
| 02 | SQHANEW | (集団項目) | | 22 | 8 | |
| 03 | SQHANPAG | PIC'(4)9' | | 22 | 4 | ページ |
| 03 | SQHANLIN | PIC'(2)9' | | 26 | 2 | 処理の振分け(全レコード共通位置) |
| 03 | SQHANSKP | PIC'(2)9' | | 28 | 2 | |
| 02 | SQHASQNO | FIXED(13) | | 30 | 7 | 荷主コード・枝番 |
| 02 | SQHAMONT | PIC'(2)9' | | 37 | 2 | |
| 02 | SQHAKIKN | (集団項目) | | 39 | 12 | |
| 03 | SQHASYMD | PIC'(6)9' | | 39 | 6 | 期間(自) |
| 03 | SQHAEYMD | PIC'(6)9' | | 45 | 6 | 期間(至)、各種判定 |
| 02 | SQHASSKB | PIC'(1)9' | | 51 | 1 | |
| 02 | SQHAKMKB | PIC'(1)9' | | 52 | 1 | 本締/仮締 |
| 02 | SQHADPKB | PIC'(1)9' | | 53 | 1 | |
| 02 | SQHAZKKB | PIC'(1)9' | | 54 | 1 | 税区分1 |
| 02 | SQHAZKK1 | PIC'(1)9' | | 55 | 1 | 税区分2 |
| 02 | SQHAOPAG | PIC'(4)9' | | 56 | 4 | |
付録C SQHAIDAB(見出し2)
| 02 | SQHBKEYB | (集団項目) | | 1 | 19 | |
| 03 | SQHBYYMM | PIC'(4)9' | | 1 | 4 | |
| 03 | SQHBTNCD | PIC'(4)9' | | 5 | 4 | 店所マスター・銀行マスターのキー |
| 03 | SQHBBANG | (集団項目) | | 9 | 10 | |
| 04 | SQHBRENB | PIC'(4)9' | | 9 | 4 | |
| 04 | SQHBPAGE | PIC'(4)9' | | 13 | 4 | |
| 04 | SQHBLINE | PIC'(2)9' | | 17 | 2 | |
| 03 | SQHBDTID | PIC'(1)9' | | 19 | 1 | |
| 02 | SQHBSKIP | PIC'(2)9' | | 20 | 2 | |
| 02 | SQHBNEW | (集団項目) | | 22 | 8 | |
| 03 | SQHBNPAG | PIC'(4)9' | | 22 | 4 | 1ページ目かの判定 |
| 03 | SQHBNLIN | PIC'(2)9' | | 26 | 2 | |
| 03 | SQHBNSKP | PIC'(2)9' | | 28 | 2 | |
| 02 | SQHBSQNM | (集団項目) | | 30 | 72 | |
| 03 | SQHBHEAD | CHAR(8) | | 30 | 8 | 荷主名(法人格) |
| 03 | SQHBNAME | CHAR(64) | | 38 | 64 | 荷主名 |
| 02 | SQHBSQKB | CHAR(10) | | 102 | 10 | |
| 02 | SQHBHTEN | CHAR(14) | | 112 | 14 | 発行店名 |
| 02 | SQHBKENP | PIC'(1)9' | | 126 | 1 | 検品見出しの判定 |
| 02 | SQHBADDT | (集団項目) | | 127 | 340 | |
| 03 | SQHBMTTO | (集団項目) | | 127 | 30 | |
| 04 | SQHBUNTI | FIXED DEC(9) | | 127 | 5 | 鑑:運賃 |
| 04 | SQHBRYOK | FIXED DEC(9) | | 132 | 5 | 鑑:料金 |
| 04 | SQHBTTAX | FIXED DEC(9) | | 137 | 5 | 鑑:消費税 |
| 04 | SQHBHOKR | FIXED DEC(9) | | 142 | 5 | 鑑:保険料 |
| 04 | SQHBAAAA | FIXED DEC(9) | | 147 | 5 | |
| 04 | SQHBATAX | FIXED DEC(9) | | 152 | 5 | |
| 03 | SQHBYUNN | CHAR(7) | | 157 | 7 | 郵便番号(7桁) |
| 03 | SQHBYUNO | PIC'(5)9' | | 164 | 5 | 郵便番号(5桁) |
| 03 | SQHBJKAN | (集団項目) | | 169 | 124 | |
| 04 | SQHBJKA1 | CHAR(34) | | 169 | 34 | 住所1 |
| 04 | SQHBJKA2 | CHAR(38) | | 203 | 38 | 住所2 |
| 04 | SQHBJKA3 | CHAR(52) | | 241 | 52 | 住所3 |
| 03 | SQHBJKNA | (集団項目) | | 293 | 129 | |
| 04 | SQHBJKN1 | CHAR(32) | | 293 | 32 | |
| 04 | SQHBJKN2 | CHAR(47) | | 325 | 47 | |
| 04 | SQHBJKN3 | CHAR(50) | | 372 | 50 | |
| 03 | SQHBDTEL | CHAR(12) | | 422 | 12 | 顧客電話番号 |
| 03 | SQHBBANK | FIXED DEC(7) | | 434 | 4 | 振込銀行1 |
| 03 | SQHBKONO | PIC'(1)9' | | 438 | 1 | 口座種別1 |
| 03 | SQHBKOBA | FIXED DEC(9) | | 439 | 5 | 口座番号1 |
| 03 | SQHBBAN1 | FIXED DEC(7) | | 444 | 4 | 振込銀行2 |
| 03 | SQHBKON1 | PIC'(1)9' | | 448 | 1 | 口座種別2 |
| 03 | SQHBKOB1 | FIXED DEC(9) | | 449 | 5 | 口座番号2 |
| 03 | SQHBTKB3 | PIC'(1)9' | | 454 | 1 | 振込区分 |
| 03 | SQHBJIKB | PIC'(1)9' | | 455 | 1 | |
| 03 | SQHBTENK | FIXED DEC(9) | | 456 | 5 | 鑑:サーチャージ |
| 03 | SQHBSPA2 | CHAR(6) | | 461 | 6 | |
付録D SQHAIDAC(明細)
| 02 | SQHCKEYB | (集団項目) | | 1 | 19 | |
| 03 | SQHCYYMM | PIC'(4)9' | | 1 | 4 | |
| 03 | SQHCTNCD | PIC'(4)9' | | 5 | 4 | |
| 03 | SQHCBANG | (集団項目) | | 9 | 10 | |
| 04 | SQHCRENB | PIC'(4)9' | | 9 | 4 | |
| 04 | SQHCPAGE | PIC'(4)9' | | 13 | 4 | |
| 04 | SQHCLINE | PIC'(2)9' | | 17 | 2 | |
| 03 | SQHCDTID | PIC'(1)9' | | 19 | 1 | 0:明細行 |
| 02 | SQHCSKIP | PIC'(2)9' | | 20 | 2 | |
| 02 | SQHCNEW | (集団項目) | | 22 | 8 | |
| 03 | SQHCNPAG | PIC'(4)9' | | 22 | 4 | |
| 03 | SQHCNLIN | PIC'(2)9' | | 26 | 2 | |
| 03 | SQHCNSKP | PIC'(2)9' | | 28 | 2 | |
| 02 | SQHCOKNO | FIXED(11) | | 30 | 6 | 送り状番号 |
| 02 | SQHCMCKB | PIC'(1)9' | | 36 | 1 | 元着 |
| 02 | SQHCMMDD | FIXED(5) | | 37 | 3 | 月日 |
| 02 | SQHCCHNM | CHAR(12) | | 40 | 12 | 地名 |
| 02 | SQHCSHNM | CHAR(14) | | 52 | 14 | 名称、検品判定 |
| 02 | SQHCKOSU | FIXED(5) | | 66 | 3 | 個数 |
| 02 | SQHCJRYO | FIXED(7) | | 69 | 4 | 重量 |
| 02 | SQHCRYOK | (集団項目) | | 73 | 37 | |
| 03 | SQHCUNCN | FIXED(9) | | 73 | 5 | 運賃 |
| 03 | SQHCSHUH | FIXED(7) | | 78 | 4 | 集配料 |
| 03 | SQHCKOSO | FIXED(7) | | 82 | 4 | 航送料 |
| 03 | SQHCDAIB | FIXED(7) | | 86 | 4 | 転嫁料欄 |
| 03 | SQHCHOKN | FIXED(7) | | 90 | 4 | 保険料 |
| 03 | SQHCSONN | FIXED(7) | | 94 | 4 | その他 |
| 03 | SQHCTATE | FIXED(7) | | 98 | 4 | 立替 |
| 03 | SQHCWARI | FIXED(7) | | 102 | 4 | 割引 |
| 03 | SQHCZIKN | FIXED(7) | | 106 | 4 | 税 |
| 02 | SQHCTSKB | CHAR(1) | | 110 | 1 | 付替訂正区分 |
| 02 | SQHCTENS | FIXED(5) | | 111 | 3 | 店 |
| 02 | SQHCBIKO | CHAR(12) | | 114 | 12 | 備考 |
| 02 | SQHCPRIT | (集団項目) | | 126 | 13 | |
| 03 | SQHCHCCD | FIXED(5) | | 126 | 3 | |
| 03 | SQHCTELN | CHAR(10) | | 129 | 10 | 検品明細の電話番号 |
付録E SQHAIDAD(計)
| 02 | SQHDKEYB | (集団項目) | | 1 | 19 | |
| 03 | SQHDYYMM | PIC'(4)9' | | 1 | 4 | |
| 03 | SQHDTNCD | PIC'(4)9' | | 5 | 4 | |
| 03 | SQHDBANG | (集団項目) | | 9 | 10 | |
| 04 | SQHDRENB | PIC'(4)9' | | 9 | 4 | |
| 04 | SQHDPAGE | PIC'(4)9' | | 13 | 4 | |
| 04 | SQHDLINE | PIC'(2)9' | | 17 | 2 | |
| 03 | SQHDDTID | PIC'(1)9' | | 19 | 1 | 3/9:計行 |
| 02 | SQHDSKIP | PIC'(2)9' | | 20 | 2 | |
| 02 | SQHDNEW | (集団項目) | | 22 | 8 | |
| 03 | SQHDNPAG | PIC'(4)9' | | 22 | 4 | |
| 03 | SQHDNLIN | PIC'(2)9' | | 26 | 2 | |
| 03 | SQHDNSKP | PIC'(2)9' | | 28 | 2 | 改行数 |
| 02 | SQHDKOSU | FIXED(7) | | 30 | 4 | 個数 |
| 02 | SQHDJRYO | FIXED(7) | | 34 | 4 | 重量 |
| 02 | SQHDUNCN | FIXED(9) | | 38 | 5 | 運賃 |
| 02 | SQHDSHUH | FIXED(7) | | 43 | 4 | 集配料 |
| 02 | SQHDKOSO | FIXED(7) | | 47 | 4 | 航送料 |
| 02 | SQHDDAIT | FIXED(7) | | 51 | 4 | 転嫁料欄 |
| 02 | SQHDSONN | FIXED(7) | | 55 | 4 | その他 |
| 02 | SQHDHOKN | FIXED(7) | | 59 | 4 | 保険料 |
| 02 | SQHDSONT | FIXED(7) | | 63 | 4 | 立替 |
| 02 | SQHDWARI | FIXED(7) | | 67 | 4 | 割引 |
| 02 | SQHDZIKN | FIXED(7) | | 71 | 4 | 税 |
| 02 | SQHDADDT | (集団項目) | | 75 | 14 | |
| 03 | SQHDSQKB | CHAR(11) | | 75 | 11 | 区分表示 |
| 03 | SQHDHDID | PIC'(1)9' | | 86 | 1 | 計の見出し判定 |
| 03 | SQHDPKBN | CHAR(1) | | 87 | 1 | 計の見出し判定 |
| 03 | SQHDSPAC | CHAR(1) | | 88 | 1 | |
付録F DDPTENMS(店所マスター)
| 02 | VETNHTCD | PIC'(4)9' | | 1 | 4 | キー。読込要否の判定 |
| 02 | VETNNTCD | CHAR(3) | | 5 | 3 | |
| 02 | VETNGETA | CHAR(1) | | 8 | 1 | |
| 02 | VETNKNNM | CHAR(14) | | 9 | 14 | |
| 02 | VETNSRNM | CHAR(14) | | 23 | 14 | 1行目:店略称 |
| 02 | VETNADCD | PIC'(11)9' | | 37 | 11 | |
| 02 | VETNADNM | CHAR(72) | | 48 | 72 | 店住所(2~67バイト目) |
| 02 | VETNPSNA | CHAR(5) | | 120 | 5 | 店郵便番号(上5桁) |
| 02 | VETNTLNO | CHAR(12) | | 125 | 12 | 店電話番号 |
| 02 | VETNPUNO | PIC'(2)9' | | 137 | 2 | |
| 02 | VETNRODA | FIXED DEC(3) | | 139 | 2 | |
| 02 | VETNSHDA | FIXED DEC(3) | | 141 | 2 | |
| 02 | VETNMCDA | FIXED DEC(3) | | 143 | 2 | |
| 02 | VETNKTEN | CHAR(4) | | 145 | 4 | |
| 02 | VETNYOBI | CHAR(4) | | 149 | 4 | |
| 02 | VETNJNTC | CHAR(3) | | 153 | 3 | |
| 02 | VETNNWCD | CHAR(3) | | 156 | 3 | |
| 02 | VETNSPAC | CHAR(1) | | 159 | 1 | |
| 02 | VETNGIFL | CHAR(1) | 5 | 160 | 1×5=5 | |
| 02 | VETNSPA2 | CHAR(3) | | 165 | 3 | |
| 02 | VETNPSNB | CHAR(2) | | 168 | 2 | 店郵便番号(下2桁) |
| 02 | VETNPUBO | CHAR(1) | | 170 | 1 | |
付録G BANKMAST(銀行マスター)
| 02 | VBNKMKEY | PIC'(7)9' | | 1 | 7 | キー前半(銀行コード) |
| 02 | VBNKKOTC | PIC'(4)9' | | 8 | 4 | キー後半(店所) |
| 02 | VBNKKOCD | (集団項目) | | 12 | 35 | |
| 03 | VBNKTOZA | PIC'(7)9' | | 12 | 7 | |
| 03 | VBNKFUTU | PIC'(7)9' | | 19 | 7 | |
| 03 | VBNKTUTI | PIC'(7)9' | | 26 | 7 | |
| 03 | VBNKTEKI | PIC'(7)9' | | 33 | 7 | |
| 03 | VBNKSONO | PIC'(7)9' | | 40 | 7 | |
| 02 | VBNKSENA | (集団項目) | | 47 | 85 | |
| 03 | VBNKNAMG | CHAR(20) | | 47 | 20 | 銀行名(漢字) |
| 03 | VBNKSNMG | CHAR(20) | | 67 | 20 | 支店名(漢字) |
| 03 | VBNKNAMC | CHAR(20) | | 87 | 20 | |
| 03 | VBNKSNMC | CHAR(25) | | 107 | 25 | |
| 02 | VBNKRYNA | (集団項目) | | 132 | 40 | |
| 03 | VBNKNSMG | CHAR(20) | | 132 | 20 | |
| 03 | VBNKNSMC | CHAR(20) | | 152 | 20 | |
| 02 | VBNKBACD | PIC'(4)9' | | 172 | 4 | |
| 02 | VBNKSPAC | CHAR(25) | | 176 | 25 | |
付録H SSYUPRNT(優先印刷マスター)
| 02 | UPRNNICD | PIC'(7)9' | | 1 | 7 | キー。読込要否の判定 |
| 02 | UPRNKUBN | PIC'(1)9' | | 8 | 1 | |
| 02 | UPRNTHKB | CHAR(1) | | 9 | 1 | |
| 02 | UPRNSPAC | CHAR(1) | | 10 | 1 | |
| 02 | UPRNAIXK | (集団項目) | | 11 | 23 | |
| 03 | UPRNATEN | PIC'(4)9' | | 11 | 4 | |
| 03 | UPRNAKBK | PIC'(1)9' | | 15 | 1 | |
| 03 | UPRNAKUB | PIC'(1)9' | | 16 | 1 | |
| 03 | UPRNASKB | CHAR(1) | | 17 | 1 | 明細不要・自店所出力の判定 |
| 03 | UPRNASCN | CHAR(9) | | 18 | 9 | |
| 03 | UPRNANIC | PIC'(7)9' | | 27 | 7 | |
| 02 | UPRNSPA2 | CHAR(7) | | 34 | 7 | |