KIN08DBU/KIN09CSV: fix comment col, quoted ASSIGN, INITIALIZE order, WRITE logic; fix resource docs & coverage stats

This commit is contained in:
qiuqiuqiu
2026-06-28 21:35:28 +08:00
parent f7199f81fd
commit cea0a60a07
6 changed files with 79 additions and 79 deletions
@@ -3,7 +3,7 @@
## プログラム概要
- **プログラムID**: KIN09CSV
- **プログラム名**: CSV出力処理
- **処理概要**: DAILY_RECORDSテーブルをCURSORで読込み、CSV形式に編集して出力。MODE=FULLで日別明細+月次サマリ、MODE=SHORTで月次サマリのみ。100行ごとにヘッダー再出力。
- **処理概要**: DAILY_RECORDSテーブルをCURSORで読込み、CSV形式に編集STRING WITH POINTERして出力。MODE=FULLで日別明細+月次サマリ、MODE=SHORTで月次サマリのみ。100行ごとにヘッダー再出力。
## 使用ファイル
@@ -24,7 +24,7 @@
| サブPGM | 役割 | CALL箇所 |
|---------|------|---------|
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
| SUB03END | ABEND処理 | 1100PARMSORYEARMONTH未設定時)/ 9999ABDSOR |
## 使用DB2テーブル
@@ -34,24 +34,25 @@
| MONTHLY_ABSENCE | SELECT | 2500-SHORT-MODE | DECLARE CURSOR / OPEN / FETCH / CLOSE |
## 処理フロー
1. 初期処理(開始メッセージ→COMMAND-LINE解析→OPEN出力
2. ヘッダー出力SHIFT JIS CSVヘッダー
3. 日別明細ループ:DAILY_RECORDS CURSOR OPEN→FETCH→CSV編集(STRING WITH POINTER)→WRITE AFTER ADVANCING 1 LINE
4. 100行ごとにヘッダー再出力(WRITE AFTER ADVANCING PAGE
5. MODE=SHORT: MONTHLY_ABSENCE CURSOR OPEN→FETCH→月次サマリCSV出力
6. 終了処理(CLOSE→件数出力→終了メッセージ)
1. 初期処理(1000ITTSOR): 開始メッセージ→ワーク初期化→COMMAND-LINE解析→OPEN出力
2. ヘッダー出力: WRITE AFTER ADVANCING PAGE(改ページ+CSVヘッダー)
3. CURSOR OPEN(1200-DAILY-OPEN): DAILY_RECORDS CURSOR OPEN + 初回FETCH
4. 日別明細ループ(2000MAJSOR): CSV編集(STRING WITH POINTER)→WRITE AFTER ADVANCING 1 LINE
- 100行ごとにヘッダー再出力: WRITE AFTER ADVANCING 2 LINES
- CSV危険文字サニタイズ: INSPECT REPLACING
5. MODE=SHORT(2500-SHORT-MODE): MONTHLY_ABSENCE CURSOR→月次サマリCSV出力
6. 終了処理(3000STPSOR): CLOSE→件数出力→終了メッセージ
## 使用構文(特記事項)
| 構文 | 使用箇所 | 備考 |
|------|---------|------|
| ACCEPT FROM COMMAND-LINE | 1100PARMSOR | "YEARMONTH=202605 MODE=FULL"解析 |
| ACCEPT FROM COMMAND-LINE | 1100PARMSOR | "YEARMONTH=202605,MODE=FULL"解析 |
| STRING DELIMITED BY | 2000MAJSOR/2500-SHORT-MODE | CSV行編集(WITH POINTER |
| WRITE AFTER ADVANCING PAGE | 2000MAJSOR | 改ページ+ヘッダー出力 |
| WRITE AFTER ADVANCING 2 LINES | 2500-SHORT-MODE | ヘッダー後改行 |
| WRITE AFTER ADVANCING 1 LINE | 2000MAJSOR/2500-SHORT-MODE | データ行改行 |
| WRITE AFTER ADVANCING PAGE | 1000ITTSOR | 改ページ+CSVヘッダー初回出力 |
| WRITE AFTER ADVANCING 2 LINES | 2000MAJSOR | 100行ごとのヘッダー再出力時 |
| WRITE AFTER ADVANCING 1 LINE | 2000MAJSOR/2500-SHORT-MODE | データ行・ヘッダー行改行 |
| INSPECT REPLACING | 2000MAJSOR | CSVカンマ・改行サニタイズ |
| DECLARE CURSOR / OPEN / FETCH / CLOSE | 1200-DAILY-OPEN/2500-SHORT-MODE | 2重CURSORDAILY→MONTHLY |
| OCCURS | WORKING-STORAGE | TARGET-EMP(100) |
| INITIALIZE | 1100PARMSOR/1200-DAILY-OPEN | 変数初期化 |
| MOVE CORRESPONDING | 2000MAJSOR | HV → CSV行項目編集 |
| INITIALIZE | 1000ITTSOR | WRKARA初期化 |
| FUNCTION WHEN-COMPILED | 1000ITTSOR | コンパイル日時表示 |