fix: KIN08DBU/KIN09CSV decimal fix (convert-sql.mjs displayDecimalVars), SYSIN format fix, coverage stats

This commit is contained in:
qiuqiuqiu
2026-06-28 23:05:50 +08:00
parent cea0a60a07
commit a110bccdaf
4 changed files with 73 additions and 50 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+56 -48
View File
@@ -89,10 +89,13 @@
03 WS-KEY2 PIC X(020).
03 WS-VALUE2 PIC X(080).
*** ホスト変数
03 HV-EMP-ID PIC X(008).
03 HV-TARGET-DATE PIC X(008).
03 HV-TIME-IN PIC X(004).
03 HV-TIME-OUT PIC X(004).
03 HV-EMP-ID PIC X(008).
03 HV-TARGET-DATE PIC X(008).
03 HV-DATE-FROM PIC X(008).
03 HV-DATE-TO PIC X(008).
03 HV-YEARMONTH PIC X(006).
03 HV-TIME-IN PIC X(004).
03 HV-TIME-OUT PIC X(004).
03 HV-ANNUAL-H PIC 9(004)V9(001).
03 HV-PERSONAL-H PIC 9(004)V9(001).
03 HV-OFFICIAL-H PIC 9(004)V9(001).
@@ -290,43 +293,46 @@
* サブモジュール名:DAILY_RECORDS CURSOR OPEN + 初回FETCH *
* 処理概要 : 該当月の全レコードをSELECT *
*****************************************************************
1200-DAILY-OPEN SECTION.
1200-DAILY-OPEN SECTION.
*
EXEC SQL
DECLARE C_DAILY CURSOR FOR
SELECT EMP_ID, TARGET_DATE,
TIME_IN, TIME_OUT,
ANNUAL_LEAVE_H, PERSONAL_LEAVE_H,
OFFICIAL_LEAVE_H, SICK_LEAVE_H,
UNAPPROVED_ABSENT_H
FROM DAILY_RECORDS
WHERE TARGET_DATE >= :WS-DATE-FROM
AND TARGET_DATE <= :WS-DATE-TO
ORDER BY EMP_ID, TARGET_DATE
END-EXEC.
MOVE WS-DATE-FROM TO HV-DATE-FROM.
MOVE WS-DATE-TO TO HV-DATE-TO.
*
EXEC SQL
OPEN C_DAILY
END-EXEC.
EXEC SQL
DECLARE C_DAILY CURSOR FOR
SELECT EMP_ID, TARGET_DATE,
TIME_IN, TIME_OUT,
ANNUAL_LEAVE_H, PERSONAL_LEAVE_H,
OFFICIAL_LEAVE_H, SICK_LEAVE_H,
UNAPPROVED_ABSENT_H
FROM DAILY_RECORDS
WHERE TARGET_DATE >= :HV-DATE-FROM
AND TARGET_DATE <= :HV-DATE-TO
ORDER BY EMP_ID, TARGET_DATE
END-EXEC.
*
EXEC SQL
FETCH C_DAILY
INTO :HV-EMP-ID,
:HV-TARGET-DATE,
:HV-TIME-IN,
:HV-TIME-OUT,
:HV-ANNUAL-H,
:HV-PERSONAL-H,
:HV-OFFICIAL-H,
:HV-SICK-H,
:HV-ABSENT-H
END-EXEC.
EXEC SQL
OPEN C_DAILY
END-EXEC.
*
IF SQLCODE NOT = 0
MOVE '1' TO WS-DAILY-EOF
END-IF.
EXEC SQL
FETCH C_DAILY
INTO :HV-EMP-ID,
:HV-TARGET-DATE,
:HV-TIME-IN,
:HV-TIME-OUT,
:HV-ANNUAL-H,
:HV-PERSONAL-H,
:HV-OFFICIAL-H,
:HV-SICK-H,
:HV-ABSENT-H
END-EXEC.
*
1200-DAILY-OPEN-EXT.
IF SQLCODE NOT = 0
MOVE '1' TO WS-DAILY-EOF
END-IF.
*
1200-DAILY-OPEN-EXT.
EXIT.
*****************************************************************
* サブモジュールNO:(2.0) *
@@ -456,17 +462,19 @@
AFTER ADVANCING 1 LINE.
ADD 1 TO CUN-W01OUT.
*
*** MONTHLY_ABSENCE CURSOR
EXEC SQL
DECLARE C_MONTHLY CURSOR FOR
SELECT EMP_ID, YEAR_MONTH,
ANNUAL_LEAVE_H, PERSONAL_LEAVE_H,
OFFICIAL_LEAVE_H, SICK_LEAVE_H,
UNAPPROVED_ABSENT_H
FROM MONTHLY_ABSENCE
WHERE YEAR_MONTH = :WS-YEARMONTH
ORDER BY EMP_ID
END-EXEC.
*
MOVE WS-YEARMONTH TO HV-YEARMONTH.
*
EXEC SQL
DECLARE C_MONTHLY CURSOR FOR
SELECT EMP_ID, YEAR_MONTH,
ANNUAL_LEAVE_H, PERSONAL_LEAVE_H,
OFFICIAL_LEAVE_H, SICK_LEAVE_H,
UNAPPROVED_ABSENT_H
FROM MONTHLY_ABSENCE
WHERE YEAR_MONTH = :HV-YEARMONTH
ORDER BY EMP_ID
END-EXEC.
*
EXEC SQL
OPEN C_MONTHLY
@@ -603,4 +611,4 @@
CALL 'SUB03END' USING E01ABDPAR.
*
9999ABDSOR-EXT.
EXIT.
EXIT.
+17 -2
View File
@@ -235,7 +235,7 @@
| INSPECT TALLYING | 文字計数 | ◎ | 中 | ZAN01CHK, KIN04CHK, SUB04CHK |
| INSPECT REPLACING | 文字置換 | ○ | 中 | KIN09CSV(CSVカンマ・改行サニタイズ) | |
| INSPECT CONVERTING | 文字変換 | × | 中 | |
| INITIALIZE REPLACING | カテゴリ別初期化 | | 中 | KIN08DBU1110-TARGETSOR |
| INITIALIZE REPLACING | カテゴリ別初期化 | × | 中 | 全PGMでINITIALIZE(plain)を使用。REPLACING句未使用 |
| MOVE TO | 基本代入 | ◎ | 高 | 全14プログラム |
| MOVE CORRESPONDING | 対応項目代入 | × | 中 | |
@@ -243,9 +243,24 @@
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|-------------|------|:-------:|:------:|------|
| EXEC SQL ... END-EXEC | DB2アクセス | ◎ | 高 | KIN02UPD, KIN03EXP, ZAN06UPD |
| EXEC SQL ... END-EXEC | DB2アクセス | ◎ | 高 | KIN02UPD, KIN03EXP, KIN08DBU, KIN09CSV, ZAN06UPD |
| EXEC CICS ... END-EXEC | CICSコマンド | × | 低 | 現状バッチのみ |
### 3.10 組込み関数
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|-------------|------|:-------:|:------:|------|
| FUNCTION WHEN-COMPILED | コンパイル日時取得 | ◎ | 高 | 全14メインプログラム(MSG033出力) |
| FUNCTION TRIM | 文字列前後空白除去 | ◎ | 中 | KIN08DBU(1130-MODESOR), KIN09CSV |
| FUNCTION MOD | 剰余算 | ◎ | 中 | KIN03EXP(曜日/うるう年), KIN06CLD(うるう年) |
| FUNCTION INTEGER-OF-DATE | 日付→整数変換 | ◎ | 中 | KIN03EXP, KIN06CLD |
| FUNCTION NUMVAL | 文字→数値変換 | ◎ | 中 | KIN03EXP, SUB04CHK |
| FUNCTION CURRENT-DATE | 現在日時取得 | ◎ | 高 | SUB01DAT(基本日付取得) |
| FUNCTION MIN/MAX | 最小/最大値 | ○ | 中 | KIN07DAIFUNCTION MIN/MAX |
| FUNCTION LENGTH/REVERSE/UPPER-CASE/LOWER-CASE | その他汎用関数 | × | 低 | 未使用 |
| FUNCTION RANDOM | 乱数生成 | × | 低 | 未使用 |
| FUNCTION SUBSTITUTE | 文字列置換 | × | 中 | INSPECT REPLACINGで代用 |
---
## 4. 全体サマリ