# 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 前処理

1. ALTFILE を READ し、ALT_PRTN（先頭4バイト）を TAB_PRTN(TABCNT) に格納する。これを ENDFILE まで繰り返す。
2. TABCNT が101に達したら、`!!! TABL OVER LAST PRTN =>`＋TAB_PRTN(100) を DISPLAY して読込を打ち切る。
   - ★ この時点で TABCNT=101 のままになる。後続の `DO II=1 TO TABCNT` が TAB_PRTN(101) を参照し、範囲外アクセスになる（SUBSCRIPTRANGE は無効が既定）。
3. ALTFILE は、メインの OPEN 文に含まれたうえで再度 OPEN される（既オープンのため実害なし）。前処理後に CLOSE され、終了時の CLOSE にも含まれている。
4. 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バイト目。
1. SQHCBIKO(9,4)='KKKK' の場合（軽油引取税転嫁分の表示）：店欄＝BIKO(1,4)、備考欄＝BIKO(5,4)。
   - ★ 前工程が 'KKKK' 書式で備考を設定している前提である。KS60144 系の書式と一致しない値は、通常の備考として扱われる（クロスチェック要）。
2. 上記以外で、備考≠空白、区分=空白、かつ検品明細でない場合：
   - 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以降）の場合：**

1. LINE_CNT < 47 なら、空行を (SQHDNSKP−1) 行出力する（47行目まで送る）。
2. LINE_CNT < 48 なら、48行目に MID_SUR2（'ｻｰﾁｬｰｼﾞ'、印字桁72）を出力し、LINE_CNT=48 とする。
3. ページ小計（49行目）：KEI_SQKB に区分表示 SQHDSQKB を設定する（PKBN='1' の場合を除く）。
4. 区分計／総合計（50行目）：KEI_HED に7章の見出しを設定する。
5. 金額は明細と同じ税区分ルールで設定し、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）

1. LINE_CNT < 47 なら、空行を (SQHDNSKP−1) 行出力する。
2. LINE_CNT < 48 なら、48行目に MID_KGO（検品料の合計見出し）を出力し、LINE_CNT=48 とする。TENK_FLG に関係なく出力する。
3. 98（検品合計）：
   - LINE_CNT < 49 なら空行を出力し、LINE_CNT=49 とする（ページ計行をスキップ）。
   - KKEI_HED='検品料　計' を設定する。
4. 90（ページ小計）：KEI_SQKB='検品料' を設定する。
5. 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行目）

1. SQHBJKA1～3 を、2バイト文字単位の配列（JKA1_WK(16)／JKA2_WK(18)／JKA3_WK(25)）として走査する。
2. 空白で区切り、30バイト以内のセグメントを WK_JKA に連結する。
3. 28バイト×4行（O5～O8）に割り付ける。8行目が空なら1行下げる。

- ★ 住所が長い場合、4行に収まらない部分は切り捨てられる。

#### 5.7.2 NM_EDIT_SUB_RTN（荷主名 10～12行目）

1. HEAD（法人格 6バイト）＋NAME1（40）＋空白2＋NAME2 の44～63バイト目を WK_JKA に連結する。
2. 空白位置で30バイト以内に分割し、X／Y／Z（各行の終端位置）を求める。
3. 28／28／16バイトの3行に割り付ける。
4. 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 |   架空町一丁目２番３号                            2500             2500     250             2750         〒 100-0005
 8 |   サンプルビル５階                                                                                       東京都架空区サンプル町
 9 |                                                                                                          １丁目１番１号
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 にする）。
  1. 店所が ALTFILE（ADG.ALTLIB(SEQPRTNC)：自店出力の店所の一覧）に**登録されていない**（PRTN_FLG＝'0'）
  2. 顧客が優先印刷マスターで「自店所出力」（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. 留意事項（★）

1. ALTFILE が101件以上の場合、TABCNT=101 で打ち切られる。その後のテーブル検索が添字範囲外（TAB_PRTN(101)）を参照する。
2. 旧形式のレコード（OUT21/22等）は NLIN が空白の可能性がある。SELECT(SQHANLIN) は数値比較のため、空白の扱いはコンパイラ依存である（CONVERSION の可能性）。
3. ハードコードがある。
   - SQHAEYMD=250105 で月='01'
   - 店所1301 の TEL
   - 西暦案内の終了 190610
   - サーチャージ開始 080919
4. 年は西暦下2桁で運用している（2000年問題対応のロジックはコメントアウト済み）。
5. 名称・住所の分割で、文字が切り捨てられることがある。
   - 半角カナで空白1個の場合、区切りがずれる。
   - 名称の3行目は最大14バイトが欠落する。
   - 住所が4行を超えた部分は欠落する。
   - 店住所は68～71バイト目を印字しない。
6. マスターのキャッシュ比較：先頭レコードでは、未初期化の UPRNNICD／VETNHTCD と比較される。OUT_SW は INIT なしである。
7. マスターに該当がなくてもメッセージは出ず、処理は続行する。
8. DTID=1／2（元払計・着払計）のレコードは印字されない（5.5参照）。
9. 2ページ目以降の荷主名は、常に SO/SI が付加される（5.3.2参照）。
10. 備考 'KKKK' の軽油表示は、前工程の備考書式に依存する（5.4参照）。
11. 検品明細は 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 |  |
