diff --git a/bin/KIN08DBU.exe b/bin/KIN08DBU.exe index 72014aa..1f066c2 100644 Binary files a/bin/KIN08DBU.exe and b/bin/KIN08DBU.exe differ diff --git a/bin/KIN09CSV.exe b/bin/KIN09CSV.exe index 0749ba5..551cd7e 100644 Binary files a/bin/KIN09CSV.exe and b/bin/KIN09CSV.exe differ diff --git a/src/KIN09CSV.cbl b/src/KIN09CSV.cbl index 3eafeb1..7c3931e 100644 --- a/src/KIN09CSV.cbl +++ b/src/KIN09CSV.cbl @@ -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. \ No newline at end of file diff --git a/品質管理/カバレッジ統計.md b/品質管理/カバレッジ統計.md index 8b8eb4f..f43f018 100644 --- a/品質管理/カバレッジ統計.md +++ b/品質管理/カバレッジ統計.md @@ -235,7 +235,7 @@ | INSPECT TALLYING | 文字計数 | ◎ | 中 | ZAN01CHK, KIN04CHK, SUB04CHK | | INSPECT REPLACING | 文字置換 | ○ | 中 | KIN09CSV(CSVカンマ・改行サニタイズ) | | | INSPECT CONVERTING | 文字変換 | × | 中 | | -| INITIALIZE REPLACING | カテゴリ別初期化 | ○ | 中 | KIN08DBU(1110-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 | 最小/最大値 | ○ | 中 | KIN07DAI(FUNCTION MIN/MAX) | +| FUNCTION LENGTH/REVERSE/UPPER-CASE/LOWER-CASE | その他汎用関数 | × | 低 | 未使用 | +| FUNCTION RANDOM | 乱数生成 | × | 低 | 未使用 | +| FUNCTION SUBSTITUTE | 文字列置換 | × | 中 | INSPECT REPLACINGで代用 | + --- ## 4. 全体サマリ