プロジェクト

全般

プロフィール

レビュー指摘 #11950 » KS60790_詳細設計書.md

[参考資料]現行ソース解析資料AI生成版 - 幸塚 和久, 2026-10-15 04:53 午後

 

KS60790 詳細設計書

項目 内容
プログラムID KS60790(ソース名 KS60790P)
プログラム名 郵送集約 請求一覧(集約代表別サマリー)作成・配信(縦バージョン)
言語 PL/I(OPTIONS(MAIN))。パターン PPB0010P
業務ID NSSQNN50(ソースの +DC GYOM)
起動JOB DAISEQ4J ステップ No.25(事業所用配信)・No.27(エコデリバー用配信)。同じプログラムを2回実行
作成日 2026/10/13(1.4 を追加し「明細」の用語を「請求先行」に訂正)
作成方法 ソースコードからのリバース作成

前提

  • INCLUDE の SQALLHED、KANBASED(顧客基本マスター)、CORPOMAN(顧客法人管理マスター)、DDPTENMS(店所マスター)、BANKMAST(銀行マスター)は、添付ソースを展開して解析した(付録B~F)。
  • 次はブラックボックス(BB)として扱う。
    • 外部手続き LSS0051(引数:店所コード4桁 → 店名14バイト、3バイト)。店所コードから店名を取得すると推定。JCL の VETENCD(SEAD.TENSCODE.CDMASTER)を使うと推定(KS60144P の LSS0050 と同系統)。
    • VKKONAM(VKAD.KONAMMST.DTMASTER):レイアウトはソース内で KOAREA(荷主コード7+荷主名14+空き19=40バイト)と定義されている。荷主名マスターと推定。
  • 帳票の印刷イメージ(6章)の値はすべて架空。桁位置はソースの印字行定義から算出した。
  • ★印は、ソースから読み取れる潜在的な問題点または注意点を示す。

1. 概要

1.1 機能

ソース先頭のコメント:「請求明細ヘッダーデータを読み集約コードでサマリーし、合計額および顧客別データを出力する。縦バージョン」

KS60780P が作った「郵送集約の対象になる請求先の見出しデータ」を、集約代表ごとにまとめ、代表あての**請求一覧(集約請求書)**を印刷する。

  1. 入力を集約代表コード(区分の1~7桁目。KS60780P が設定)で区切る。
  2. 区切りごとに、集約代表の**顧客基本マスター(KANBASED)と顧客法人管理マスター(CORPOMAN)**を読み、代表の名称・住所・郵便番号・電話・振込口座を取得する。
  3. 代表扱い店(区分の8~11桁目)の店所マスターから、発行店の略称・〒・住所・電話を取得する。
  4. 振込銀行を銀行マスターで引き、銀行名・支店名を取得する。
  5. 代表にまとめられる各請求先(代表自身を含む)の運賃・料金・消費税・保険料・合計を一覧にし、最後に合計を印字する。1ページ30件。
  6. 終了時に、銀行マスターに該当がなかった件数を表示する。

1.2 処理概要図

 KS60780P → SORT4(代表扱い店・集約代表・扱い店の順)
          │
          ▼
 WORK0120/WORK0130 ──▶ INFILE ──▶ KS60790P ──▶ OUTFILE ──▶ SYSOUT(電子帳票)
                                      ▲ ▲ ▲ ▲ ▲            No.25:E,KS607902(事業所用)
   VKKANBS(顧客基本)  ──────────────┘ │ │ │ │            No.27:E,KS607901(エコデリバー用)
   VKCORPO(顧客法人管理)──────────────┘ │ │ │
   VKTENMS(店所)   ─────────────────────┘ │ │
   VKBANKM(銀行)   ───────────────────────┘ │
   VKKONAM(荷主名)  ─────────────────────────┘     LSS0051(BB:店名取得)… VETENCD

1.3 JCL 上の2回の実行の違い

観点 No.25 No.27
JCL コメント 「KS60790P(事業所用配信)」 「KS60790P(エコデリバー用配信)」
INFILE TEMP.KS60750J.WORK0120 TEMP.KS60750J.WORK0130
入力の元 No.22 KS60780P(優先印刷マスターに有る荷主)→ No.24 SORT4 No.23 KS60780P(優先印刷マスターに無い荷主)→ No.26 SORT4
OUTFILE SYSOUT=(E,KS607902,99)、RECFM=FA、LRECL=133 SYSOUT=(E,KS607901,99)、同左
マスター DD VKKANBS、VKTENMS、VKBANKM、VKKONAM、VKCORPO、VETENCD(同じ) 同左
帳票の様式 同じ(プログラムが同じ) 同じ
  • プログラム・マスター・帳票の様式は同じで、入力(どの請求先の集約か)と SYSOUT のライター名だけが違う。
  • 同じ集約代表のグループでも、代表と配下の優先印刷マスターの登録が違うと、両方の帳票に分かれて載る(KS60780 設計書 2.4・6.6)。その場合、それぞれの帳票の合計はグループの一部だけの合計になる。

1.4 入力データと帳票の「一覧」の関係(送り状明細は無い)

入力(WORK0120/0130)には、見出しデータ(請求先ごとの鑑)しか入っていない。送り状ごとの明細データ(データID 01、21、22、45 等)は、KS60770P の段階で捨てられている。

工程 残るデータ
KS60770P 全店所の請求明細から、見出しデータ(ID 00)だけを抽出(請求額≠0)
KS60780P そのうち、郵送集約の対象になる荷主の見出しだけ(本締のみ。データIDを 00=代表/99=配下に書き換え)
KS60790P(本PG) 入力の1レコード=1請求先の鑑

そのため、帳票の一覧部(16~45行目)の1行は送り状1件ではなく、請求先1件であり、金額はその請求先の鑑の金額(請求書の「ご請求額」の内訳)である。

一覧の欄 入力項目(見出しデータの鑑)
請求先番号 SDTASQNO(荷主7桁+枝番5桁)
荷主名 荷主名マスター(VKKONAM)の略称
扱い店名 SDTACKTT を LSS0051 で店名に変換
運賃 SDTAUNTI(鑑:運賃)
料金 SDTARYOK(鑑:料金)
消費税 SDTATTAX(鑑:消費税)
保険料 SDTAHOKR(鑑:保険料)
合計 上の4項目の和(=KS60151P 等の請求書の「ご請求額」と同じ式)
  • 帳票全体は「集約代表あての請求一覧」で、代表自身と、代表にまとめられる各請求先の請求額を1行ずつ並べ、合計を出す形になる。個々の送り状の内容は、各請求先の請求書(KS60144P → KS60151P/KS60152P)にしか出ない。
  • KS60780P の1対1マッチングにより、1荷主につき1請求先(最初の枝番)しか入力に残らない(KS60780 設計書 8章 No.1)。同じ荷主の2件目以降の請求先は、この一覧にも載らない。
  • 本書の旧版で「明細」と書いていた箇所は、この「請求先行」の意味である(本版で用語を改めた)。

2. 外部インターフェース

2.1 ファイル一覧

DD名 編成/属性(DCL) 入出力 内容 読込/書出領域 キー
INFILE RECORD INPUT(順次・可変長) 入力 郵送集約対象の見出しデータ INAREA CHAR(560) VAR(SQALLHED) -
VKKANBS VSAM KEYED DIRECT INPUT 入力 顧客基本マスター KANAREA(KANBASED 1500バイト) 集約代表コード7桁
VKCORPO VSAM KEYED DIRECT INPUT 入力 顧客法人管理マスター CORAREA(CORPOMAN 120バイト) 集約代表コード7桁
VKTENMS VSAM KEYED DIRECT INPUT 入力 店所マスター TENAREA(DDPTENMS 170バイト) 代表扱い店4桁
VKBANKM VSAM KEYED DIRECT INPUT 入力 銀行マスター BNKAREA(BANKMAST 200バイト) 銀行コード7+店所4
VKKONAM VSAM KEYED DIRECT INPUT 入力 荷主名マスター(推定) KOAREA(40バイト) 荷主コード7桁
OUTFILE RECORD OUTPUT(ASA 制御文字付き) 出力 請求一覧(帳票) LST1~LSTB(133バイト) -
  • VSAM 5本の OPEN 文はない。最初の READ で暗黙にオープンされる。
  • JCL に SYSPRINT の DD はない。DISPLAY はジョブログに出る。

2.2 JCL との対応(No.25/No.27 共通部分)

DD名 データセット 備考
VKKANBS VK47.KANBASED.DTMASTER 顧客基本マスター
VKTENMS VKAD.CENTENMS.DTMASTER 店所マスター
VKBANKM VKAD.BANKMAST.NMMASTER 銀行マスター
VKKONAM VKAD.KONAMMST.DTMASTER 荷主名マスター(推定)
VKCORPO VKAD.CORPOMAN.DTMASTER 顧客法人管理マスター
VETENCD SEAD.TENSCODE.CDMASTER(DASD11) プログラムに宣言なし。LSS0051(BB)が使用と推定

2.3 入力ファイルの違い

DD名 何の単位で読むか 何に使うか
INFILE 全件を順に 集約代表の区切り、一覧の請求先行(1レコード=1請求先の請求額)、合計
VKKANBS 集約代表ごとに1回(キー=代表) 代表の名称・住所・〒・電話・口座(見出し部)
VKCORPO 集約代表ごとに1回(キー=代表) 名称区分が 'H' のとき、代表の名称をこのマスターの名称にする
VKTENMS 集約代表ごとに1回(キー=代表扱い店) 発行店の略称・〒・住所・電話(見出し部の右側)
VKBANKM 集約代表ごとに1回(キー=銀行コード+顧客の店所) 振込先の銀行名・支店名
VKKONAM 請求先行1行ごと(キー=請求先の荷主コード) 一覧の荷主名(略称)
  • 顧客基本マスターと顧客法人管理マスターは、どちらも集約代表のコードで読む。請求先(配下)ごとの名称は、荷主名マスター(VKKONAM)から略称を取るだけ。

3. データ定義

3.1 入力エリア

名称 内容
INAREA/INARA SQALLHED(見出しデータ)。区切りの先頭レコードの項目を、マスターの値で上書きして見出しに使う
INSPAC(INSPAC_DF) SDTASPA1 の写し:INNICD CHAR(7)=集約代表コード、INTNCD PIC'(4)9'=代表扱い店
KANAREA KANBASED。VTN1(VNADVTN1:SO+4文字+SI)、VTN2(VNADVTN2:12文字)、VTN3(VNADVTN3:18文字)、VTN4(KAKOSEQG:25文字)として住所に使う
CORAREA CORPOMAN。COR1(CORPNINM:SO+40バイト+SI)
TENAREA DDPTENMS。TNNM_DF(VETNADNM:SO+35文字+SI)
BNKAREA/BNKKEY BANKMAST/キー(BNKCD 7桁+BNKTN 4桁)
KOAREA KONICD PIC'(7)9'、KONINM CHAR(14)、KOSPAC CHAR(19)

3.2 主要ワーク

名称 属性 内容
BREAKA CHAR(7) 処理中の集約代表コード
MS_SW CHAR(1) 直前の VSAM 読込みの成否('N'=該当なし。全 VSAM 共通)
WKAREA FIXED DEC(15)×5 代表ごとの合計:運賃 UNCNGK、料金 RYKNGK、消費税 SZEIGK、保険料 HOKNGK、合計 GOKEGK
NITABL(420) 構造体の配列 一覧の請求先行:荷主7、枝番5、扱い店4(SDTACKTT)、運賃・料金・税・保険・合計(各 DEC(15))
NICNT FIXED DEC(3) 請求先行の件数(最大420)
PGCNT/DTCNT FIXED DEC(3) ページ数/印字済みの請求先行の件数
ADNAME(ADDATA(57)、ADNAM1~3) CHAR(114) 住所の編集域(2バイト×57文字=19文字×3行)
NINAME(NIDATA(34)、NINAM1~2) CHAR(68) 名称の編集域(17文字×2行)
TNNAME1~3(TNDATA1~3(14)) CHAR(28)×3 店住所の編集域(14文字×3行)
HEX42 CHAR(1) X'42'。全角数字(X'42F0'~X'42F9')を作るための先頭バイト
WK_SO/WK_SI CHAR(1) シフトアウト/シフトイン
NCNT FIXED DEC(9) 銀行マスターに該当がなかった件数

3.3 出力レコード(印字行)

印字行 ASA 内容
LST1 '1' 改ページ(空行)
LST2 '0' 年・月(全角)、代表扱い店、集約代表コード
LST3 '0' 顧客〒
LST4 '0' 顧客住所1、請求合計、店略称
LST5 ' ' 顧客住所2、店〒
LST6 ' ' 顧客住所3、店住所1
LST7 ' ' 顧客名1、銀行名、店住所2
LST8 ' ' 顧客名2、支店名
LST9 ' ' ℡+顧客電話、口座種別、'口座番号'+番号、'TEL:'+店電話
LSTDMA '-' 空行(2行空け)
LSTA ' ' 請求先行(1行=1請求先):請求先番号、荷主名、扱い店名、運賃、料金、消費税、保険料、合計、備考
LSTDMB ' ' 空行(一覧欄の埋め)
LSTB ' ' 合計:運賃、料金、消費税、保険料、合計
  • 印字行の名前と中身が1行ずれている箇所がある(LST5 の中に LST4TPOS、LST6 の中に LST5TAD1、LST7 の中に LST6TAD2、LST9 の中に LST8DAT1・LST8TTEL)。プログラムは項目名で設定しているため、印字結果はこの表のとおり(付録A)。

4. 処理フロー

開始
 ├─ ON 条件:ENDFILE(INFILE)、KEY(各 VSAM) → MS_SW='N'(VKCORPO はさらに CORAREA をクリア)
 ├─ OPEN INFILE、OUTFILE
 ├─ INFILE を1件読む、INSPAC ← SDTASPA1
 ├─ DO WHILE(INFILE が終わるまで)                        … 集約代表の単位
 │     BREAKA ← INNICD
 │     VKCORPO、VKKANBS を BREAKA で読む
 │     顧客基本マスターに有れば、先頭レコードの見出し項目を上書き(5.2)
 │     見出し行の編集(年月、〒、住所、名称、店、銀行)(5.3)
 │     合計・請求先表をクリア
 │     DO WHILE(終わっていない かつ INNICD=BREAKA)       … 請求先の単位
 │         合計に加算、請求先表に登録(420件まで)
 │         INFILE を1件読む、INSPAC ← SDTASPA1
 │     END
 │     印刷:ページ数=請求先件数÷30(切上げ)
 │       各ページ:見出し(LST1~LST9、LSTDMA)→ 請求先行30行(LSTA)
 │       最終ページ:空行で30行にそろえ、合計行(LSTB)
 │  END
 ├─ DISPLAY 銀行エラー件数
 ├─ CLOSE INFILE、OUTFILE
終了

5. 処理詳細

5.1 集約代表の区切り

  • キーは INNICD(SDTASPA1 の1~7桁目=集約代表コード)だけ。入力は SORT4 で「代表扱い店 → 集約代表 → 扱い店(SDTACKTT)」の順に並んでいる。
  • ★ 同じ集約代表でも代表扱い店が違うレコードがあると、並びが離れるため、**別の帳票(別の区切り)**になる。
  • 区切りの先頭レコード(代表自身とは限らない)の見出し項目を、帳票の見出しに使う。

5.2 マスターの読込みと見出し項目の上書き

  1. READ FILE(VKCORPO) KEY(BREAKA)。該当なしなら CORAREA をクリア(ON KEY 内)。
  2. READ FILE(VKKANBS) KEY(BREAKA)。該当ありの場合だけ、先頭レコードの SQALLHED 項目を次のとおり上書きする。
上書き先 編集元(顧客基本マスター等) 帳票での使用
(VNADKNN3、VNADVTN3) VNADDTKB=1 なら空白にする VTN3 は住所3として印字
SDTAYUNO 0 なし
SDTAYUNN KATNPSNN('0000000' または空白なら空白) 3行目の〒
SDTASQN1/SDTASQN2 KAKONMKB:1=(株)、2=(有)、3=(名)、4=(資)、5=(財)、6=(社)、7=(学)。それ以外は変えない SQN1 は名称の先頭に印字。SQN2(カナ)は印字なし
SDTASQNI CORPNMKB='H' なら CORPNINM(SO+40バイト+空白22+SI)とし、SQN1 を空白にする。それ以外は KATNSGNM の1~41バイト+空白2+KATNSGN2 の2~22バイト 名称(10・11行目)
SDTASQNM KATNSCNM なし
SDTAJKA3/SDTAJKN3 KAKOADKB=1 なら KAKOSEQG/KAKOSEQC、それ以外は KAKOSYOG/KAKOSYOC なし
SDTAJKN1/SDTAJKN2 VNADKNN1∥VNADKNN2/VNADKNN3 なし
SDTADTEL KATNTLNO 12行目の顧客電話
SDTABANK/KONO/KOBA TTTBKCD1/TTTKSCB1/TTTKSNO1 銀行マスターのキー、口座種別、口座番号
SDTABAN1/KON1/KOB1 KAHFBKCD(1)/KAHFKOZA(1)/KAHFKZNO(1) なし(2つ目の口座は印字しない)
  • ただし KAHFBKCD(3)='8888888' かつ KAHFKOZA(1)='8' かつ KAHFKZNO(1)='8888888' の場合(ソースコメント「取引銀行、顧客台帳よりのみセット」)は、口座1を KAHF(1)、口座2を KAHF(2) にする。

  • ★ 顧客基本マスターに該当がない場合、上書きは行われず、見出しは先頭レコード(代表とは限らない)の値のままになる。さらに KANAREA はクリアされないため、住所(VTN1~4)と銀行マスターのキー後半(KAADATCD(1))は前の代表の値が残る(最初の代表なら不定)。名称・〒は先頭レコードの値、住所は前の代表の値という、食い違った見出しになり得る。

5.3 見出し行の編集

行 項目 編集内容
LST2 年 全角「20」+発行年月日 SDTAHYMD の1~2桁(全角)。SDTASYMD=250105 なら「2025」
LST2 月 SDTAHYMD の3~4桁(全角)。SDTASYMD=250105 なら「01」
LST2 店・代表 LST2TNCD=INTNCD(代表扱い店)、LST2NICD=INNICD(集約代表コード)
LST3 〒 SDTAYUNN の1~3桁+'-'+4~7桁
LST4~6 左 顧客住所 ADR_NAME_RTN(5.4)で VTN1~4 を詰めて、19文字×3行
LST4 中 請求合計 GOKEGK(代表ごとの合計)。'ZZ,ZZZ,ZZZ,ZZ9'
LST4 右 店略称 VETNSRNM(店所マスター、キー=INTNCD)
LST5 右 店〒 '〒'+VETNPSNA の1~3桁+'-'+4~5桁+VETNPSNB
LST6・7 右 店住所 TEN_NAME_RTN(5.4)で VETNADNM を詰めて 14文字×最大3行。★ 実際は1行目しか入らない
LST7・8 左 顧客名 ADR_NAME_RTN で SDTASQN1(法人格)+SDTASQNI を詰めて、17文字×2行
LST7・8 中 銀行名・支店名 銀行マスター(キー=SDTABANK+KAADATCD(1))の VBNKNAMG/VBNKSNMG
LST9 顧客電話 '℡'+SDTADTEL
LST9 口座 SDTAKONO=1 なら '普通'、それ以外 '当座'。'口座番号'+SDTAKOBA(7桁)
LST9 右 店電話 'TEL:'+VETNTLNO
  • 銀行マスターに該当がない場合は、銀行名・支店名・種別を空白にし、NCNT+1。★ 口座番号(PIC'(7)9')は '' の代入で 0 になり、「口座番号 0000000」と印字される。
  • ★ 年は「20」固定+2桁。

5.4 サブルーチン

ADR_NAME_RTN(顧客住所・顧客名の詰め)

  1. ADNAME を空白にし、VTN1(4文字)、VTN2(12文字)、VTN3(18文字)、VTN4(KAKOSEQG、25文字)の順に、空白でない2バイト文字だけを ADDATA(1~57) に詰める。各部分の間には1文字分の空白を空ける。
  2. ADNAM1/2/3(各19文字)がそれぞれ住所1~3行目になる。
  3. NINAME を空白にし、SDTASQN1(法人格3文字)と SDTASQNI(31文字)の空白でない文字を NIDATA(1~34) に詰める。NINAM1/2(各17文字)が顧客名1~2行目になる。
  • ★ 住所は最大で 4+12+18+25+区切り3=62文字になり、ADDATA(57) を超える可能性がある(添字範囲外)。
  • ★ 住所4は KAKOADKB に関係なく KAKOSEQG を使う(5.2 で SDTAJKA3 を KAKOADKB で選んでいるのと一致しない)。
  • ★ 名称の中の全角空白(KATNSGNM と KATNSGN2 の間の空白も含む)はすべて詰められる。

TEN_NAME_RTN(店住所の詰め)

  1. TNNAME1~3 を空白にし、VETNADNM の35文字のうち空白でない文字を順に詰める。
    • TNCNT<14 → TNNAME1 に追加
    • 15 ≦ TNCNT < 28 → TNNAME2 に追加
    • 29 ≦ TNCNT → TNNAME3 に追加
  • ★ TNCNT が 14 になった時点で、どの条件にも当てはまらなくなる(14 は「<14」でも「≧15」でもない)。そのため15文字目以降は捨てられ、TNNAME2・TNNAME3 は常に空白になる。店住所は先頭14文字しか印字されない(6章のイメージ参照)。

5.5 請求先行の集計

集約代表が同じ間、レコードごとに:

  1. 合計に加算:UNCNGK+=SDTAUNTI、RYKNGK+=SDTARYOK、SZEIGK+=SDTATTAX、HOKNGK+=SDTAHOKR、GOKEGK+=4項目の和。
  2. NICNT<420 なら、請求先表に登録:荷主(SEQ_NICD)、枝番(SEQ_SQNO)、扱い店(SDTACKTT)、4項目と合計。
  3. INFILE を1件読み、INSPAC ← SDTASPA1。
  • ★ 421件目以降は、合計には加算されるが一覧には載らない。一覧の行の合計と合計行が一致しなくなる。
  • 代表(データID 00)と配下(99)は区別しない。並びは SORT4 の扱い店(SDTACKTT)順で、代表が先頭とは限らない。

5.6 印刷

  1. PGCNT=NICNT÷30(端数切上げ)。
  2. ページごとに:LST1(改ページ)、LST2~LST9、LSTDMA を出力(LST4 の請求合計は毎ページ同じ値)。
  3. 請求先行を最大30行出力する。各行:
    • 請求先番号:荷主7桁+'-'+枝番5桁
    • 荷主名:VKKONAM を荷主コードで読み、KONINM(14バイト)。該当なしは空白
    • 扱い店名:CALL LSS0051(SQTNCD, PARMY, PARMZ) の PARMY の1~9バイト+14バイト目(SO+4文字+SI と推定)
    • 運賃・料金・消費税・保険料・合計:各15桁(ゼロは空白)
  4. 最後の請求先行を出したページでは、30行に満たない分を空行(LSTDMB)で埋め、合計行(LSTB)を出力する。
  • ★ 金額のピクチャー(Z)に符号がないため、マイナスの金額は符号なしで印字される。

5.7 終了処理

  • DISPLAY('<<< KS60790P BANK ERROR = '||NCNT)(銀行マスターに該当がなかった代表の数)。

6. 帳票仕様(印刷イメージ)

6.1 ページ構成

行(物理) 印字行 内容
1 LST1 改ページ
2 - 空行(次の行の ASA '0')
3 LST2 年・月、代表扱い店、集約代表コード
5 LST3 顧客〒
7 LST4 顧客住所1、請求合計、店略称
8 LST5 顧客住所2、店〒
9 LST6 顧客住所3、店住所1
10 LST7 顧客名1、銀行名、店住所2(★常に空白)
11 LST8 顧客名2、支店名
12 LST9 顧客電話、口座種別・番号、店電話
15 LSTDMA 空行(ASA '-')
16~45 LSTA/LSTDMB 請求先行(30行。1行=1請求先)
46 LSTB 合計(最終ページのみ)

6.2 印刷イメージ(1ページ目=最終ページ)

  • 例:集約代表 7654321、代表扱い店 1002、代表自身を含め3請求先。値はすべて架空。
  • 16~18行目は送り状ではなく請求先ごとの請求額(各請求先の鑑の金額)。46行目はその合計で、7行目の請求合計と同じ値になる。
  • 左端の「行 |」はイメージ用の物理行番号で、印字されない。ルーラーは印字桁(ASA を除く1~132桁)。
  • 全角文字は2桁、SO/SI は1桁の空白として表示している。
  • 店住所(9行目右)は「東京都架空区サンプル町1丁目1番1号」のうち先頭14文字しか印字されない(5.4 の★)。
行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
 1 |
 2 |
 3 |                                       2026   09                                    1002  7654321
 4 |
 5 |  150-0001
 6 |
 7 |  東京都 架空区 サンプル町 1丁目2番                             65,670                     テスト支店
 8 |  3号サンプルビル                                                                       〒 100-0005
 9 |                                                                                          東京都架空区サンプル町1丁目
10 |  (株)サンプル物流                             サンプル銀行
11 |                                                 本店
12 |                     ℡ 0000-00-0000             普通  口座番号  1234567                 TEL:03-0000-0000
13 |
14 |
15 |
16 |   7654321-00000 サンプルブツリユウ     東京支店            42000           2400           4440                         48840
17 |   1234567-00001 テストシヨウジ        大阪支店            12000                          1200                         13200
18 |   5678901-00000 カクウコウギヨウ       福岡支店             3000            300            330                          3630
   |                    (19~45行目:空行 LSTDMB を 27 行出力して一覧欄を30行にそろえる)
46 |                                                     57000           2700           5970                         65670

6.3 帳票の留意点

  • プレ印刷帳票を前提としていると推定される(項目の見出し文字は「℡」「口座番号」「TEL:」「〒」以外は印字しない)。
  • 請求先が31件以上の場合、2ページ目以降も見出し部(1~12行目)を同じ内容で印字し、一覧の続きを載せる。合計行は最終ページだけ(6.4)。
  • No.25(事業所用)と No.27(エコデリバー用)は同じ様式で、載る代表・請求先が違う(1.3)。

6.4 請求先が30件を超える場合の印刷イメージ

1つの集約代表に請求先が31件以上あると、複数ページになる(1ページ30件)。例:集約代表 7654321 に請求先が32件ある場合(値は架空)。

【1ページ目】
行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
 1 |
 2 |
 3 |                                       2026   09                                    1002  7654321
 4 |
 5 |  150-0001
 6 |
 7 |  東京都 架空区 サンプル町 1丁目2番                            210,210                     テスト支店
 8 |  3号サンプルビル                                                                       〒 100-0005
 9 |                                                                                          東京都架空区サンプル町1丁目
10 |  (株)サンプル物流                             サンプル銀行
11 |                                                 本店
12 |                     ℡ 0000-00-0000             普通  口座番号  1234567                 TEL:03-0000-0000
13 |
14 |
15 |
16 |   7654321-00000 サンプルブツリユウ     東京支店             1000                           100                          1100
17 |   1001371-00000 テストシヨウジ        大阪支店             9500            100            960                         10560
18 |   1002742-00000 カクウコウギヨウ       福岡支店             8000            200            820                          9020
   |                    (19~42行目:請求先 4~27 件目。省略)
43 |   1037017-00000 ミナトシヨウカイ        札幌支店            10500                          1050                         11550
44 |   1038388-00000 ヤマダセイサク        東京支店             9000            100            910                         10010
45 |   1039759-00000 タカハシサンギヨウ      大阪支店             7500            200            770                          8470

【2ページ目】
行 |----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3--
 1 |
 2 |
 3 |                                       2026   09                                    1002  7654321
 4 |
 5 |  150-0001
 6 |
 7 |  東京都 架空区 サンプル町 1丁目2番                            210,210                     テスト支店
 8 |  3号サンプルビル                                                                       〒 100-0005
 9 |                                                                                          東京都架空区サンプル町1丁目
10 |  (株)サンプル物流                             サンプル銀行
11 |                                                 本店
12 |                     ℡ 0000-00-0000             普通  口座番号  1234567                 TEL:03-0000-0000
13 |
14 |
15 |
16 |   1041130-00000 サンプルブツリユウ     福岡支店             6000                           600                          6600
17 |   1042501-00000 テストシヨウジ        札幌支店             4500            100            460                          5060
   |                    (18~45行目:空行 LSTDMB ×28)
46 |                                                    188000           3100          19110                        210210
  • 見出し部(1~15行目)は全ページ同じ内容で印字される。7行目の請求合計も、全ページとも代表全体の合計(210,210)である。
  • 1ページ目は請求先30件で終わり、合計行は印字されない(45行目で終わる)。
  • 最終ページ(2ページ目)は、残りの2件の後を空行28行で埋め、46行目に合計行を印字する。合計行は全32件の合計で、7行目の請求合計と一致する。
  • ★ ページ番号や「続き」の表示はない。2ページ目だけを見ると、1ページ目と区別できるのは一覧の内容と合計行の有無だけである。

件数による違い:

請求先の件数 ページ数 各ページの一覧 合計行
1~29件 1 件数分+空行で30行 1ページ目の46行目
30件 1 30件ちょうど(空行なし) 1ページ目の46行目(30件目の直後)
31件 2 1ページ目30件/2ページ目1件+空行29行 2ページ目の46行目
60件 2 30件/30件 2ページ目の46行目
421件以上 14 420件まで(30件×14ページ) 14ページ目。★ 合計行と7行目の請求合計には421件目以降も含まれ、一覧の合計と一致しない(5.5)

7. メッセージ

出力先 メッセージ 契機
ジョブログ(DISPLAY) <<< KS60790P BANK ERROR = ∥ 件数 終了時。銀行マスターに該当がなかった代表の数

8. 異常処理

事象 処理
INFILE の終了 EOF_SW='0'B でループを終える(正常)
VSAM に該当なし(KEY 条件) MS_SW='N'。顧客法人管理は CORAREA をクリア。顧客基本は上書きなし(★前の値が残る)。店所は TENAREA を事前にクリア済み(空白)。銀行は空白+エラー件数。荷主名は空白
LSS0051 の異常 BB のため不明
その他 ON ERROR の定義なし → PL/I 標準のエラー処理(異常終了)
リターンコード 設定なし(正常時は 0)

9. 留意事項(★)

  1. 店住所は先頭14文字しか印字されない:TEN_NAME_RTN の条件の抜け(TNCNT=14 で止まる)。7行目の店住所2は常に空白(5.4)。
  2. 顧客基本マスターに該当がない代表:見出しの名称・〒は先頭レコード(配下の場合あり)の値、住所と銀行のキーは前の代表の値になる(5.2)。KS60750P で集約代表が空白のまま抽出された荷主(KS60750 設計書 8章 No.1)はこれに当たる。
  3. 同じ代表が別の帳票に分かれる:代表扱い店が違うレコードがあると、同じ代表で複数の区切りになる(5.1)。また、事業所用・エコデリバー用の2本に分かれることもある(1.3)。
  4. 421件目以降は一覧に載らないが、合計には含まれる(5.5)。
  5. マイナスの金額は符号が出ない(5.6)。
  6. 銀行が見つからないと「口座番号 0000000」と印字される(5.3)。2つ目の口座は印字しない。
  7. 住所の編集域の上限超えの可能性(62文字>57文字)(5.4)。
  8. 住所4の選択:見出しデータへの上書きは KAKOADKB で選ぶが、印字は常に KAKOSEQG(5.4)。上書きした SDTAJKA3、SDTAJKN1~3、SDTASQNM、SDTASQN2、SDTABAN1 等は印字に使われない。
  9. 扱い店名は4文字:LSS0051 の店名の先頭4文字だけを印字する。
  10. ハードコード:SDTASYMD=250105 で年月を「2025 01」に固定、年の上2桁「20」固定。
  11. VSAM の OPEN 文がない、SYSPRINT の DD がない。
  12. SDTACKTT は扱い店の店所コード:本PG で LSS0051(店名取得)に渡していることから判明した。KS60780 設計書では「締日関連と推定」としていたが、扱い店コードと考えられる。

10. 未使用項目

項目 内容
LS3A 事業所名の行(WRITE がコメントアウトされている)
PARMZ LSS0051 の第3引数(戻り値を使わない)
ICNT、BKLEN1、BKLEN2 宣言のみ
LSTABIKO、LSTBBIKO 備考欄(常に空白)
KANBASED、CORPOMAN、DDPTENMS、BANKMAST の多くの項目 付録の「本PGでの使用」欄が空の項目

付録A 印字行 項目位置表

  • レコード位置は ASA を1とした位置、印字桁は ASA を除いた桁(=レコード位置−1)。
印字行 項目 レコード位置 長さ 印字桁
LST1 LST1CTRL 1 1 ASA
LST1 LST1SPAC 2 132 1~132
LST2 LST2CTRL 1 1 ASA
LST2 LST2SPC0 2 38 1~38
LST2 LST2YYSO 40 1 39
LST2 LST2YYY1 41 2 40~41
LST2 LST2YYY2 43 2 42~43
LST2 LST2YYY3 45 2 44~45
LST2 LST2YYY4 47 2 46~47
LST2 LST2YYSI 49 1 48
LST2 LST2SPC1 50 1 49
LST2 LST2MMSO 51 1 50
LST2 LST2MMM1 52 2 51~52
LST2 LST2MMM2 54 2 53~54
LST2 LST2MMSI 56 1 55
LST2 LST2SPC2 57 35 56~90
LST2 LST2TNCD 92 4 91~94
LST2 LST2SPC3 96 2 95~96
LST2 LST2NICD 98 7 97~103
LST2 LST2SPAC 105 29 104~132
LST3 LST3CTRL 1 1 ASA
LST3 LST3SPC1 2 2 1~2
LST3 LST3KPOS 4 8 3~10
LST3 LST3SPAC 12 122 11~132
LST4 LST4CTRL 1 1 ASA
LST4 LST4SPC1 2 1 1
LST4 LST4KAD1 3 40 2~41
LST4 LST4SPC2 43 20 42~61
LST4 LST4GOKE 63 14 62~75
LST4 LST4SPC3 77 20 76~95
LST4 LS3ATNNM 97 14 96~109
LST4 LST4SPC4 111 23 110~132
LST5 LST5CTRL 1 1 ASA
LST5 LST5SPC1 2 1 1
LST5 LST5KAD2 3 40 2~41
LST5 LST5SPC2 43 47 42~88
LST5 LST4TPOS 90 12 89~100
LST5 LST5SPC3 102 32 101~132
LST6 LST6CTRL 1 1 ASA
LST6 LST6SPC1 2 1 1
LST6 LST6KAD3 3 40 2~41
LST6 LST6SPC2 43 48 42~89
LST6 LST5TAD1 91 36 90~125
LST6 LST6SPC3 127 7 126~132
LST7 LST7CTRL 1 1 ASA
LST7 LST7SPC1 2 1 1
LST7 LST7KNM1 3 36 2~37
LST7 LST7SPC2 39 11 38~48
LST7 LST7BNK1 50 30 49~78
LST7 LST7SPC3 80 11 79~89
LST7 LST6TAD2 91 36 90~125
LST7 LST7SPC4 127 7 126~132
LST8 LST8CTRL 1 1 ASA
LST8 LST8SPC1 2 1 1
LST8 LST8KNM2 3 36 2~37
LST8 LST8SPC2 39 11 38~48
LST8 LST8BNK2 50 30 49~78
LST8 LST8SPC3 80 11 79~89
LST8 LST8SPC4 91 43 90~132
LST9 LST9CTRL 1 1 ASA
LST9 LST9SPC1 2 20 1~20
LST9 LST9DAT1 22 4 21~24
LST9 LST9KTEL 26 12 25~36
LST9 LST9SPC2 38 12 37~48
LST9 LST9BNKA 50 6 49~54
LST9 LST9DAT2 56 10 55~64
LST9 LST9SPC3 66 1 65
LST9 LST9BANG 67 7 66~72
LST9 LST9SPC4 74 17 73~89
LST9 LST8DAT1 91 4 90~93
LST9 LST8TTEL 95 12 94~105
LST9 LST9SPC5 107 27 106~132
LSTDMA LSDACTRL 1 1 ASA
LSTDMA LSDASPAC 2 132 1~132
LSTDMB LSDBCTRL 1 1 ASA
LSTDMB LSDBSPAC 2 132 1~132
LSTA LSTACTRL 1 1 ASA
LSTA LSTASPC1 2 3 1~3
LSTA LSTASQNO 5 13 4~16
LSTA LSTASPC2 18 1 17
LSTA LSTANINM 19 14 18~31
LSTA LSTASPC3 33 1 32
LSTA LSTAATTN 34 10 33~42
LSTA LSTASPC4 44 1 43
LSTA LSTAUNCN 45 15 44~58
LSTA LSTARYKN 60 15 59~73
LSTA LSTASZEI 75 15 74~88
LSTA LSTAHOKN 90 15 89~103
LSTA LSTASEQG 105 15 104~118
LSTA LSTABIKO 120 10 119~128
LSTA LSTASPC5 130 4 129~132
LSTB LSTBCTRL 1 1 ASA
LSTB LSTBSPC1 2 43 1~43
LSTB LSTBUNCN 45 15 44~58
LSTB LSTBRYKN 60 15 59~73
LSTB LSTBSZEI 75 15 74~88
LSTB LSTBHOKN 90 15 89~103
LSTB LSTBSEQG 105 15 104~118
LSTB LSTBBIKO 120 10 119~128
LSTB LSTBSPC2 130 4 129~132

付録B SQALLHED(見出しデータ、560バイト)

LV 項目名 属性 繰返し 位置 長さ 本PGでの使用
02 SDTASHTN PIC'(4)9' 1 4
02 SDTAKKKK CHAR(10) 5 10
02 SDTASQNO FIXED DEC(13) 15 7 請求先番号 → 一覧の荷主コード・枝番
02 SDTASPA1 CHAR(11) 22 11 集約代表7桁+代表扱い店4桁(KS60780P が設定)
02 SDTADTID PIC'(2)9' 33 2
02 SDTAKARI PIC'(1)9' 35 1
02 SDTADPKB PIC'(1)9' 36 1
02 SDTAYYMM PIC'(4)9' 37 4
02 SDTAHYMD PIC'(6)9' 41 6 年・月の印字(先頭レコード)
02 SDTACKTT PIC'(4)9' 47 4 扱い店コード → LSS0051 で店名に変換
02 SDTAKIKN (集団項目) 51 12
03  SDTAKYMD PIC'(6)9' 51 6
03  SDTASYMD PIC'(6)9' 57 6 250105 の判定
02 SDTASQN1 CHAR(8) 63 8 上書き:法人格 → 顧客名
02 SDTASQNI CHAR(64) 71 64 上書き:顧客名
02 SDTASQN2 CHAR(5) 135 5 上書きのみ(印字なし)
02 SDTASQNM CHAR(36) 140 36 上書きのみ
02 SDTAPKEI PIC'(1)9' 176 1
02 SDTAPKBN CHAR(1) 177 1
02 SDTAHYOG (集団項目) 178 20
03  SDTANNNO PIC'(1)9' 20 178 1×20=20
02 SDTABIKB PIC'(1)9' 198 1
02 SDTAZKIN PIC'(1)9' 199 1
02 SDTAZKI1 PIC'(1)9' 200 1
02 SDTAJIKB PIC'(1)9' 201 1
02 SDTABBKB PIC'(1)9' 202 1
02 SDTAHHTN PIC'(4)9' 203 4
02 SDTASPAC CHAR(14) 207 14
02 SDTAHEAD (集団項目) 221 340
03  SDTAMTTO (集団項目) 221 30
04   SDTAUNTI FIXED DEC(9) 221 5 集計:運賃
04   SDTARYOK FIXED DEC(9) 226 5 集計:料金
04   SDTATTAX FIXED DEC(9) 231 5 集計:消費税
04   SDTAHOKR FIXED DEC(9) 236 5 集計:保険料
04   SDTAAAAA FIXED DEC(9) 241 5
04   SDTAATAX FIXED DEC(9) 246 5
03  SDTAYUNN CHAR(7) 251 7 上書き:郵便番号 → 3行目
03  SDTAYUNO PIC'(5)9' 258 5 上書き(0)のみ
03  SDTAJKAN (集団項目) 263 124
04   SDTAJKA1 CHAR(34) 263 34
04   SDTAJKA2 CHAR(38) 297 38
04   SDTAJKA3 CHAR(52) 335 52 上書きのみ
03  SDTAJKNA (集団項目) 387 129
04   SDTAJKN1 CHAR(32) 387 32 上書きのみ
04   SDTAJKN2 CHAR(47) 419 47 上書きのみ
04   SDTAJKN3 CHAR(50) 466 50 上書きのみ
03  SDTADTEL CHAR(12) 516 12 上書き:顧客電話 → 9行目
03  SDTABANK FIXED DEC(7) 528 4 上書き:銀行コード → 銀行マスターのキー
03  SDTAKONO PIC'(1)9' 532 1 上書き:口座種別
03  SDTAKOBA FIXED DEC(9) 533 5 上書き:口座番号
03  SDTABAN1 FIXED DEC(7) 538 4 上書きのみ
03  SDTAKON1 PIC'(1)9' 542 1 上書きのみ
03  SDTAKOB1 FIXED DEC(9) 543 5 上書きのみ
03  SDTATKB3 PIC'(1)9' 548 1
03  SDTATENK FIXED DEC(9) 549 5
03  SDTASPA2 CHAR(7) 554 7

付録C KANBASED(顧客基本マスター、1500バイト)

LV 項目名 属性 繰返し 位置 長さ 本PGでの使用
02 KACUBASE (集団項目) 1 799
03  KACUSTCD PIC'(7)9' 1 7 キー(顧客コード)
03  KACUCDKB PIC'(1)9' 8 1
03  KAADINFO (集団項目) 9 34
04   KAADKSCD (集団項目) 9 11
05    KAADCODA PIC'(5)9' 9 5
05    KAADCODB CHAR(6) 14 6
04   KAADCODW PIC'(1)9' 20 1
04   KAADSTCD PIC'(5)9' 21 5
04   KATNTLNO CHAR(12) 26 12 顧客電話
04   KATNPSNO CHAR(5) 38 5
03  KAADJOHO (集団項目) 43 48
04   KAADATIF (集団項目) 4 43 10×4=40
05    KAADATCD PIC'(4)9' 43 4 (1) を銀行マスターのキー後半に使用
05    KAADSZCD FIXED DEC(5) 47 3
05    KAADTWRK PIC'(1)9' 50 1
05    KAADAKKM FIXED DEC(3) 51 2
04   KAHFYOST PIC'(4)9' 83 4
04   KASFMATC PIC'(4)9' 87 4
03  KATNINFX (集団項目) 91 11
04   KATNKUBN PIC'(1)9' 91 1
04   KATNKUMK PIC'(1)9' 10 92 1×10=10
03  KAHFINFO (集団項目) 102 141
04   KAHFSHKB PIC'(1)9' 102 1
04   KAHFSHBI PIC'(2)9' 103 2
04   KAHFBKOC (集団項目) 3 105 31×3=93
05    KAHFBKCD PIC'(7)9' 105 7 (1)(2) 銀行コード、(3)=8888888 の判定
05    KAHFBKNM CHAR(16) 112 16
05    KAHFKOZA PIC'(1)9' 128 1 (1)(2) 口座種別
05    KAHFKZNO PIC'(7)9' 129 7 (1)(2) 口座番号
04   KAHFMKBN (集団項目) 3 198 15×3=45
05    KAHFMAXK FIXED DEC(9) 198 5
05    KAHFSPER FIXED DEC(3) 5 203 2×5=10
03  KASFINFO (集団項目) 243 98
04   KAADSQKB PIC'(1)9' 243 1
04   KASFDPSQ PIC'(1)9' 244 1
04   KASFDUMY CHAR(2) 245 2
04   KASFHATN PIC'(4)9' 247 4
04   KASFSORT PIC'(1)9' 5 251 1×5=5
04   KASFSMKB (集団項目) 6 256 3×6=18
05    KASFSSIX PIC'(2)9' 256 2
05    KASFSSAK PIC'(1)9' 258 1
04   KASFTEIS PIC'(2)9' 274 2
04   KASFPKET PIC'(1)9' 276 1
04   KASFPKBN CHAR(1) 277 1
04   KASFDISP (集団項目) 278 20
05    KASFHOHO PIC'(1)9' 20 278 1×20=20
04   KASFPBIK PIC'(1)9' 298 1
04   KASFBEFO (集団項目) 299 24
05    KASFSSNO PIC'(12)9' 299 12
05    KASFZYMD PIC'(6)9' 311 6
05    KASFZZYM PIC'(6)9' 317 6
04   KASFNEXT (集団項目) 323 7
05    KASFGKBN PIC'(1)9' 323 1
05    KASFGSME PIC'(6)9' 324 6
04   KASFAD11 (集団項目) 330 11
05    KASFAD05 PIC'(5)9' 330 5
05    KASFAD06 CHAR(6) 335 6
03  KABKINFO (集団項目) 341 33
04   KABKKZKB PIC'(1)9' 341 1
04   KABKKTKB PIC'(1)9' 342 1
04   KABKSOKB PIC'(1)9' 343 1
04   KABKSSKB PIC'(1)9' 344 1
04   KABKSSJO (集団項目) 5 345 4×5=20
05    KABKCLSD PIC'(2)9' 345 2
05    KABKPAYD PIC'(2)9' 347 2
04   KABKKTCD PIC'(4)9' 365 4
04   KABKISKB PIC'(1)9' 369 1
04   KABKKNCD FIXED DEC(7) 370 4
03  KATCINFO (集団項目) 374 41
04   KAADGSKB PIC'(4)9' 374 4
04   KAADCKKB PIC'(1)9' 378 1
04   KAOTYAKB PIC'(1)9' 379 1
04   KAEXKBN1 PIC'(1)9' 380 1
04   KAEXKBN2 CHAR(1) 381 1
04   KAEXKBN3 PIC'(1)9' 382 1
04   KAEXKBN4 PIC'(1)9' 383 1
04   KAEXKBN5 PIC'(1)9' 384 1
04   KAEXKBN6 PIC'(1)9' 385 1
04   KAEXKBN7 PIC'(1)9' 386 1
04   KAEXKBN8 PIC'(1)9' 387 1
04   KAEXKBN9 PIC'(1)9' 388 1
04   KAEXKBNA PIC'(1)9' 389 1
04   KAEXKBNB PIC'(1)9' 390 1
04   KAEXKBNC PIC'(1)9' 391 1
04   KAEXKBND PIC'(1)9' 392 1
04   KAEXKBNE PIC'(1)9' 393 1
04   KAEXKBNF PIC'(1)9' 394 1
04   KAEXKBNG PIC'(1)9' 395 1
04   KAEXKBNH PIC'(1)9' 396 1
04   KAEXKBNI PIC'(1)9' 397 1
04   KAEXKBNJ PIC'(1)9' 398 1
04   KAEXKBNK PIC'(1)9' 399 1
04   KAEXKBNL PIC'(1)9' 400 1
04   KAEXKBNM PIC'(1)9' 401 1
04   KAEXKBNN PIC'(1)9' 402 1
04   KAEXKBNO PIC'(1)9' 403 1
04   KAEXKBNP PIC'(1)9' 404 1
04   KAEXKBNQ PIC'(1)9' 405 1
04   KAEXKBNR PIC'(1)9' 406 1
04   KAEXKBNS PIC'(1)9' 407 1
04   KAEXKBNT PIC'(1)9' 408 1
04   KAEXKBNU PIC'(1)9' 409 1
04   KAEXKBNV PIC'(1)9' 410 1
04   KAEXKBNW PIC'(1)9' 411 1
04   KAEXKBNX PIC'(1)9' 412 1
04   KAEXKBNY PIC'(1)9' 413 1
04   KAEXKBNZ PIC'(1)9' 414 1
03  KAEIGRPX (集団項目) 415 9
04   KAEIKBN1 PIC'(1)9' 415 1
04   KAEIKBN2 PIC'(1)9' 416 1
04   KAEIKBN3 PIC'(1)9' 417 1
04   KAEIPER1 FIXED DEC(5) 418 3
04   KAEIPER2 FIXED DEC(5) 421 3
03  KATCGRPX (集団項目) 424 18
04   KATNPSNN CHAR(7) 424 7 郵便番号7桁
04   KASQPSNN CHAR(7) 431 7
04   KATCSPAC CHAR(4) 438 4
03  KATNINFO (集団項目) 442 341
04   KAKONMKB PIC'(1)9' 442 1 法人格区分(1~7)
04   KATNSGNX (集団項目) 443 64
05    KATNSGNM CHAR(42) 443 42 顧客名1
05    KATNSGN2 CHAR(22) 485 22 顧客名2
04   KATNRGNM CHAR(14) 507 14
04   KATNSCNM CHAR(36) 521 36 → SDTASQNM(印字なし)
04   KATNRCNM CHAR(14) 557 14
04   KAKOADKB PIC'(1)9' 571 1 住所区分
04   KAKOSYOG CHAR(52) 572 52 → SDTAJKA3(印字なし)
04   KAKOSEQG CHAR(52) 624 52 住所4(印字)
04   KAKOSYOC CHAR(50) 676 50 → SDTAJKN3
04   KAKOSEQC CHAR(50) 726 50 → SDTAJKN3
04   KASQPSNO CHAR(5) 776 5
04   KAKOSPA2 CHAR(2) 781 2
03  KAHKYSRT (集団項目) 783 6
04   KAHNKSYY PIC'(2)9' 783 2
04   KAHNKSMM PIC'(2)9' 785 2
04   KAHNKSDD PIC'(2)9' 787 2
03  KAHKYMNT (集団項目) 789 6
04   KAHNKMYY PIC'(2)9' 789 2
04   KAHNKMMM PIC'(2)9' 791 2
04   KAHNKMDD PIC'(2)9' 793 2
03  KACUBSPC CHAR(5) 795 5
02 KCBNDUMM CHAR(1) 800 1
02 TTTTENNM (集団項目) 801 38
03  TTTTNNMC CHAR(12) 801 12
03  TTTTNNMG CHAR(26) 813 26
02 TTTTNADD (集団項目) 839 144
03  TTTTNADN CHAR(144) 839 144
02 TTTTELNO (集団項目) 983 20
03  TTTTNOMB CHAR(12) 983 12
03  TTTNTTAD CHAR(8) 995 8
02 TTTTBANK (集団項目) 1003 15
03  TTTBKCD1 PIC'(7)9' 1003 7 銀行コード(通常)
03  TTTKSNO1 PIC'(7)9' 1010 7 口座番号(通常)
03  TTTKSCB1 PIC'(1)9' 1017 1 口座種別(通常)
02 VNADDTKB PIC'(1)9' 1018 1 1 なら KNN3・VTN3 を消去
02 VNADADRA (集団項目) 1019 68
03  VNADKNN1 CHAR(8) 1019 8 → SDTAJKN1
03  VNADKNN2 CHAR(24) 1027 24 → SDTAJKN1
03  VNADVTN1 CHAR(10) 1051 10 住所1(印字)
03  VNADVTN2 CHAR(26) 1061 26 住所2(印字)
02 VNADADRB (集団項目) 1087 85
03  VNADKNN3 CHAR(47) 1087 47 → SDTAJKN2
03  VNADVTN3 CHAR(38) 1134 38 住所3(印字)
02 VNADSPAC CHAR(29) 1172 29
02 KBTTGRUP (集団項目) 2 1201 29×2=58
03  KBTTKKBN PIC'(1)9' 1201 1
03  KBTTIRYO FIXED DEC(5) 1202 3
03  KBTTURKB PIC'(1)9' 20 1205 1×20=20
03  KBTTLRYO FIXED DEC(5) 1225 3
03  KBTTHSU1 PIC'(1)9' 1228 1
03  KBTTHSU2 PIC'(1)9' 1229 1
02 KBTIGRUP (集団項目) 1259 50
03  KBTIKKBN PIC'(1)9' 1259 1
03  KBTIURKB PIC'(1)9' 20 1260 1×20=20
03  KBTIMKBN (集団項目) 3 1280 9×3=27
04   KBTIMAXK FIXED DEC(7) 1280 4
04   KBTIWARK FIXED DEC(5) 1284 3
04   KBTIWARP FIXED DEC(3,1) 1287 2
03  KBTIHSU1 PIC'(1)9' 1307 1
03  KBTIHSU2 PIC'(1)9' 1308 1
02 KBIRSGRP (集団項目) 1309 13
03  KBIRKKBN PIC'(2)9' 1309 2
03  KBIRIRYO FIXED DEC(7,2) 1311 4
03  KBIRLRYO FIXED DEC(7) 1315 4
03  KBIRISKB PIC'(1)9' 1319 1
03  KBIRHSU1 PIC'(1)9' 1320 1
03  KBIRHSU2 PIC'(1)9' 1321 1
02 KBIRHGRP (集団項目) 1322 13
03  KBIRKKBN PIC'(2)9' 1322 2
03  KBIRIRYO FIXED DEC(7,2) 1324 4
03  KBIRLRYO FIXED DEC(7) 1328 4
03  KBIRISKB PIC'(1)9' 1332 1
03  KBIRHSU1 PIC'(1)9' 1333 1
03  KBIRHSU2 PIC'(1)9' 1334 1
02 KBRUGRUP (集団項目) 1335 133
03  KBRUPTRX FIXED DEC(3) 4 1335 2×4=8
03  KBRUHOMN CHAR(5) 25 1343 5×25=125
02 KBPC0000 CHAR(33) 1468 33

付録D CORPOMAN(顧客法人管理マスター、120バイト)

LV 項目名 属性 繰返し 位置 長さ 本PGでの使用
02 CORPVKEY (集団項目) 1 7
03  CORPNICD CHAR(7) 1 7 キー(集約代表コード)
02 CORPAIX1 (集団項目) 8 7
03  CORPTKCD CHAR(7) 8 7
02 CORPAIX2 (集団項目) 15 7
03  CORPZAND CHAR(7) 15 7
02 CORPATTN PIC'(4)9' 22 4
02 CORPTKTN PIC'(4)9' 26 4
02 CORPZDTN PIC'(4)9' 30 4
02 CORPJGKB CHAR(1) 34 1
02 CORPTKJG CHAR(1) 35 1
02 CORPDLKB CHAR(1) 36 1
02 CORPNINM CHAR(42) 37 42 CORPNMKB='H' のとき顧客名
02 CORPCOKB CHAR(1) 79 1
02 CORPDSTK CHAR(1) 80 1
02 CORPWARI FIXED DEC(3) 81 2
02 CORPNMKB CHAR(1) 83 1 'H' なら顧客名を CORPNINM にする
02 CORPSPAC CHAR(14) 84 14
02 CORPPUDL CHAR(1) 98 1
02 CORPPUMD CHAR(6) 99 6
02 CORPJYCD CHAR(6) 105 6
02 CORPTRMD CHAR(4) 111 4
02 CORPUYMD CHAR(6) 115 6

付録E DDPTENMS(店所マスター、170バイト)

LV 項目名 属性 繰返し 位置 長さ 本PGでの使用
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 店略称 → 4行目右
02 VETNADCD PIC'(11)9' 37 11
02 VETNADNM CHAR(72) 48 72 店住所 → 6・7行目右(★先頭14文字のみ)
02 VETNPSNA CHAR(5) 120 5 店〒上5桁
02 VETNTLNO CHAR(12) 125 12 店電話 → 9行目右
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

付録F BANKMAST(銀行マスター、200バイト)

LV 項目名 属性 繰返し 位置 長さ 本PGでの使用
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 銀行名 → 7行目
03  VBNKSNMG CHAR(20) 67 20 支店名 → 8行目
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
(1-1/3)