Initial import: 子系统B 前三本程序 production 资源
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SUB01DAT.
|
||||
*****************************************************************
|
||||
* システム名 : 残業統計管理システム *
|
||||
* プログラムID : SUB01DAT *
|
||||
* プログラム名 : 運用日付取得サブ *
|
||||
* 作成日 : 2026-06-14 *
|
||||
* 処理概要 : FUNCTION CURRENT-DATEにより現在日付を取得 *
|
||||
* しYYYYMMDD形式で返す *
|
||||
* *
|
||||
*****************************************************************
|
||||
* 更新履歴 *
|
||||
*---------------------------------------------------------------*
|
||||
* 更新日付 担当者 更新内容 *
|
||||
*---------------------------------------------------------------*
|
||||
* 26-06-14 @@@ 新規作成 *
|
||||
* *
|
||||
*****************************************************************
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||||
*
|
||||
DATA DIVISION.
|
||||
*****************************************************************
|
||||
WORKING-STORAGE SECTION.
|
||||
*****************************************************************
|
||||
01 WRKARA.
|
||||
03 WRK-SYS-DATE PIC X(026).
|
||||
03 WRK-DATE-8 PIC 9(008).
|
||||
*
|
||||
*****************************************************************
|
||||
* リンケージエリア *
|
||||
*****************************************************************
|
||||
LINKAGE SECTION.
|
||||
*
|
||||
01 D01UBSPAR.
|
||||
03 D01FKICOD PIC S9(004) COMP.
|
||||
03 D01UBSUDATE PIC 9(008).
|
||||
*
|
||||
PROCEDURE DIVISION USING D01UBSPAR.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (0.0) *
|
||||
* サブモジュール名: 制御処理 *
|
||||
* 処理概要 : メインコントロール処理 *
|
||||
*****************************************************************
|
||||
0000MAINSOR SECTION.
|
||||
*
|
||||
*** 現在日付を取得する
|
||||
MOVE FUNCTION CURRENT-DATE TO WRK-SYS-DATE.
|
||||
*** YYYYMMDD部分を抽出
|
||||
MOVE WRK-SYS-DATE(1:8) TO D01UBSUDATE.
|
||||
*** 正常終了
|
||||
MOVE ZERO TO D01FKICOD.
|
||||
*
|
||||
0000MAINSOR-EXT.
|
||||
GOBACK.
|
||||
@@ -0,0 +1,76 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SUB02MSG.
|
||||
*****************************************************************
|
||||
* システム名 : 残業統計管理システム *
|
||||
* プログラムID : SUB02MSG *
|
||||
* プログラム名 : メッセージ編集出力サブ *
|
||||
* 作成日 : 2026-06-14 *
|
||||
* 処理概要 : メッセージ番号とパラメータを編集し *
|
||||
* 標準出力へ出力する *
|
||||
* *
|
||||
*****************************************************************
|
||||
* 更新履歴 *
|
||||
*---------------------------------------------------------------*
|
||||
* 更新日付 担当者 更新内容 *
|
||||
*---------------------------------------------------------------*
|
||||
* 26-06-14 @@@ 新規作成 *
|
||||
* *
|
||||
*****************************************************************
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||||
*
|
||||
DATA DIVISION.
|
||||
*****************************************************************
|
||||
WORKING-STORAGE SECTION.
|
||||
*****************************************************************
|
||||
01 WRKARA.
|
||||
03 WRK-MSG-LINE PIC X(303).
|
||||
*
|
||||
*****************************************************************
|
||||
* リンケージエリア *
|
||||
*****************************************************************
|
||||
LINKAGE SECTION.
|
||||
*
|
||||
01 M00MHOPAR.
|
||||
03 M00MSGCOD PIC 9(003).
|
||||
03 M00UMKDATS22-01 PIC X(030).
|
||||
03 M00UMKDATS22-02 PIC X(030).
|
||||
03 M00UMKDATS22-03 PIC X(030).
|
||||
03 M00UMKDATS22-04 PIC X(030).
|
||||
03 M00UMKDATS22-05 PIC X(030).
|
||||
03 M00UMKDATS22-06 PIC X(030).
|
||||
03 M00UMKDATS22-07 PIC X(030).
|
||||
03 M00UMKDATS22-08 PIC X(030).
|
||||
03 M00UMKDATS22-09 PIC X(030).
|
||||
03 M00UMKDATS22-10 PIC X(030).
|
||||
*
|
||||
PROCEDURE DIVISION USING M00MHOPAR.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (0.0) *
|
||||
* サブモジュール名: 制御処理 *
|
||||
* 処理概要 : メインコントロール処理 *
|
||||
*****************************************************************
|
||||
0000MAINSOR SECTION.
|
||||
*
|
||||
*** メッセージ行を編集する
|
||||
STRING 'MSG['
|
||||
M00MSGCOD
|
||||
'] P1='
|
||||
M00UMKDATS22-01
|
||||
' P2='
|
||||
M00UMKDATS22-02
|
||||
' P3='
|
||||
M00UMKDATS22-03
|
||||
' P4='
|
||||
M00UMKDATS22-04
|
||||
' P5='
|
||||
M00UMKDATS22-05
|
||||
INTO WRK-MSG-LINE
|
||||
END-STRING.
|
||||
*** 標準出力へ出力
|
||||
DISPLAY WRK-MSG-LINE.
|
||||
*
|
||||
0000MAINSOR-EXT.
|
||||
GOBACK.
|
||||
@@ -0,0 +1,55 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SUB03END.
|
||||
*****************************************************************
|
||||
* システム名 : 残業統計管理システム *
|
||||
* プログラムID : SUB03END *
|
||||
* プログラム名 : ABEND処理サブ *
|
||||
* 作成日 : 2026-06-14 *
|
||||
* 処理概要 : ABENDコードを表示しプログラムを異常終了 *
|
||||
* させる *
|
||||
* *
|
||||
*****************************************************************
|
||||
* 更新履歴 *
|
||||
*---------------------------------------------------------------*
|
||||
* 更新日付 担当者 更新内容 *
|
||||
*---------------------------------------------------------------*
|
||||
* 26-06-14 @@@ 新規作成 *
|
||||
* *
|
||||
*****************************************************************
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||||
*
|
||||
DATA DIVISION.
|
||||
*****************************************************************
|
||||
WORKING-STORAGE SECTION.
|
||||
*****************************************************************
|
||||
01 WRKARA.
|
||||
03 WRK-ABEND-MSG PIC X(020).
|
||||
*
|
||||
*****************************************************************
|
||||
* リンケージエリア *
|
||||
*****************************************************************
|
||||
LINKAGE SECTION.
|
||||
*
|
||||
01 E01ABDPAR.
|
||||
03 E01ABDCOD PIC 9(003).
|
||||
*
|
||||
PROCEDURE DIVISION USING E01ABDPAR.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (0.0) *
|
||||
* サブモジュール名: 制御処理 *
|
||||
* 処理概要 : メインコントロール処理 *
|
||||
*****************************************************************
|
||||
0000MAINSOR SECTION.
|
||||
*
|
||||
*** 異常終了メッセージを表示する
|
||||
MOVE 'ABEND CODE=' TO WRK-ABEND-MSG.
|
||||
MOVE E01ABDCOD TO WRK-ABEND-MSG(12:3).
|
||||
DISPLAY WRK-ABEND-MSG.
|
||||
*** プログラムを異常終了させる
|
||||
STOP RUN.
|
||||
*
|
||||
0000MAINSOR-EXT.
|
||||
GOBACK.
|
||||
@@ -0,0 +1,170 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SUB04CHK.
|
||||
*****************************************************************
|
||||
* システム名 : 残業統計管理システム *
|
||||
* プログラムID : SUB04CHK *
|
||||
* プログラム名 : 項目チェックサブ *
|
||||
* 作成日 : 2026-06-14 *
|
||||
* 処理概要 : 指定されたタイプによりデータ項目の妥当性 *
|
||||
* をチェックする *
|
||||
* *
|
||||
*****************************************************************
|
||||
* 更新履歴 *
|
||||
*---------------------------------------------------------------*
|
||||
* 更新日付 担当者 更新内容 *
|
||||
*---------------------------------------------------------------*
|
||||
* 26-06-14 @@@ 新規作成 *
|
||||
* *
|
||||
*****************************************************************
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||||
*
|
||||
DATA DIVISION.
|
||||
*****************************************************************
|
||||
WORKING-STORAGE SECTION.
|
||||
*****************************************************************
|
||||
01 WRKARA.
|
||||
03 WRK-RETURN-CODE PIC 9(004).
|
||||
03 WRK-SIGN PIC S9(004).
|
||||
03 WRK-NN PIC 9(004).
|
||||
*
|
||||
*****************************************************************
|
||||
* リンケージエリア *
|
||||
*****************************************************************
|
||||
LINKAGE SECTION.
|
||||
*
|
||||
01 C01CHKPAR.
|
||||
03 C01CHKTYP PIC X(008).
|
||||
03 C01CHKDAT PIC X(080).
|
||||
03 C01CHKRRC PIC 9(004).
|
||||
*
|
||||
PROCEDURE DIVISION USING C01CHKPAR.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (0.0) *
|
||||
* サブモジュール名: 制御処理 *
|
||||
* 処理概要 : メインコントロール処理 *
|
||||
*****************************************************************
|
||||
0000MAINSOR SECTION.
|
||||
*
|
||||
*** チェックタイプにより分岐する
|
||||
EVALUATE C01CHKTYP
|
||||
*** 日付チェック(YYYYMMDD)
|
||||
WHEN 'DATE'
|
||||
PERFORM 1000CHKDATE
|
||||
*** 時刻チェック(HHMM)
|
||||
WHEN 'TIME'
|
||||
PERFORM 2000CHKTIME
|
||||
*** 数字チェック
|
||||
WHEN 'NUM'
|
||||
PERFORM 3000CHKNUM
|
||||
*** 社員番号チェック(英数字8桁)
|
||||
WHEN 'EMPID'
|
||||
PERFORM 4000CHKEMP
|
||||
WHEN OTHER
|
||||
MOVE 9999 TO WRK-RETURN-CODE
|
||||
END-EVALUATE.
|
||||
*
|
||||
*** 復帰コードを設定して復帰
|
||||
MOVE WRK-RETURN-CODE TO C01CHKRRC.
|
||||
*
|
||||
0000MAINSOR-EXT.
|
||||
GOBACK.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (1.0) *
|
||||
* サブモジュール名: 日付チェック *
|
||||
* 処理概要 : YYYYMMDD形式の妥当性チェック *
|
||||
*****************************************************************
|
||||
1000CHKDATE SECTION.
|
||||
*
|
||||
*** 月チェック(桁位置5〜6: 01-12)
|
||||
MOVE FUNCTION NUMVAL(
|
||||
C01CHKDAT(5:2)) TO WRK-NN.
|
||||
IF (WRK-NN < 1) OR (WRK-NN > 12) THEN
|
||||
MOVE 0001 TO WRK-RETURN-CODE
|
||||
GO TO 1000CHKDATE-EXT
|
||||
END-IF.
|
||||
*** 日チェック(桁位置7〜8: 01-31)
|
||||
MOVE FUNCTION NUMVAL(
|
||||
C01CHKDAT(7:2)) TO WRK-NN.
|
||||
IF (WRK-NN < 1) OR (WRK-NN > 31) THEN
|
||||
MOVE 0001 TO WRK-RETURN-CODE
|
||||
GO TO 1000CHKDATE-EXT
|
||||
END-IF.
|
||||
*** 正常
|
||||
MOVE ZERO TO WRK-RETURN-CODE.
|
||||
*
|
||||
1000CHKDATE-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (2.0) *
|
||||
* サブモジュール名: 時刻チェック *
|
||||
* 処理概要 : HHMM形式の妥当性チェック *
|
||||
*****************************************************************
|
||||
2000CHKTIME SECTION.
|
||||
*
|
||||
*** 時チェック(桁位置1〜2: 00-23)
|
||||
MOVE FUNCTION NUMVAL(
|
||||
C01CHKDAT(1:2)) TO WRK-NN.
|
||||
IF (WRK-NN > 23) THEN
|
||||
MOVE 0002 TO WRK-RETURN-CODE
|
||||
GO TO 2000CHKTIME-EXT
|
||||
END-IF.
|
||||
*** 分チェック(桁位置3〜4: 00-59)
|
||||
MOVE FUNCTION NUMVAL(
|
||||
C01CHKDAT(3:2)) TO WRK-NN.
|
||||
IF (WRK-NN > 59) THEN
|
||||
MOVE 0002 TO WRK-RETURN-CODE
|
||||
GO TO 2000CHKTIME-EXT
|
||||
END-IF.
|
||||
*** 正常
|
||||
MOVE ZERO TO WRK-RETURN-CODE.
|
||||
*
|
||||
2000CHKTIME-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (3.0) *
|
||||
* サブモジュール名: 数字チェック *
|
||||
* 処理概要 : 全桁が数字であることをチェック *
|
||||
*****************************************************************
|
||||
3000CHKNUM SECTION.
|
||||
*
|
||||
*** 非数字文字が含まれていないかチェック
|
||||
INSPECT C01CHKDAT
|
||||
TALLYING WRK-NN FOR
|
||||
CHARACTERS BEFORE INITIAL SPACE.
|
||||
IF WRK-NN > 0 THEN
|
||||
MOVE 0003 TO WRK-RETURN-CODE
|
||||
GO TO 3000CHKNUM-EXT
|
||||
END-IF.
|
||||
*** 正常
|
||||
MOVE ZERO TO WRK-RETURN-CODE.
|
||||
*
|
||||
3000CHKNUM-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (4.0) *
|
||||
* サブモジュール名: 社員番号チェック *
|
||||
* 処理概要 : 英数字8桁のチェック *
|
||||
*****************************************************************
|
||||
4000CHKEMP SECTION.
|
||||
*
|
||||
*** 桁数チェック(8桁)
|
||||
IF C01CHKDAT(9:72) NOT = SPACES THEN
|
||||
MOVE 0004 TO WRK-RETURN-CODE
|
||||
GO TO 4000CHKEMP-EXT
|
||||
END-IF.
|
||||
*** 英数字チェック
|
||||
INSPECT C01CHKDAT(1:8)
|
||||
TALLYING WRK-NN FOR
|
||||
CHARACTERS BEFORE INITIAL SPACE.
|
||||
IF WRK-NN > 0 THEN
|
||||
MOVE 0004 TO WRK-RETURN-CODE
|
||||
GO TO 4000CHKEMP-EXT
|
||||
END-IF.
|
||||
*** 正常
|
||||
MOVE ZERO TO WRK-RETURN-CODE.
|
||||
*
|
||||
4000CHKEMP-EXT.
|
||||
EXIT.
|
||||
@@ -0,0 +1,153 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. SUB05TIM.
|
||||
*****************************************************************
|
||||
* システム名 : 残業統計管理システム *
|
||||
* プログラムID : SUB05TIM *
|
||||
* プログラム名 : 時刻丸め計算サブ *
|
||||
* 作成日 : 2026-06-14 *
|
||||
* 処理概要 : 時間値を指定単位で丸め計算する *
|
||||
* *
|
||||
*****************************************************************
|
||||
* 更新履歴 *
|
||||
*---------------------------------------------------------------*
|
||||
* 更新日付 担当者 更新内容 *
|
||||
*---------------------------------------------------------------*
|
||||
* 26-06-14 @@@ 新規作成 *
|
||||
* *
|
||||
*****************************************************************
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
SOURCE-COMPUTER. IBM-ZSERIES.
|
||||
OBJECT-COMPUTER. IBM-ZSERIES.
|
||||
*
|
||||
DATA DIVISION.
|
||||
*****************************************************************
|
||||
WORKING-STORAGE SECTION.
|
||||
*****************************************************************
|
||||
01 WRKARA.
|
||||
03 WRK-MINUTES PIC S9(005).
|
||||
03 WRK-HOURS PIC S9(005)V9(001).
|
||||
03 WRK-REMAINDER PIC S9(005).
|
||||
*
|
||||
*****************************************************************
|
||||
* リンケージエリア *
|
||||
*****************************************************************
|
||||
LINKAGE SECTION.
|
||||
*
|
||||
01 T01TIMPAR.
|
||||
03 T01TIMHRS PIC 9(004)V9(001).
|
||||
03 T01TIMOUT PIC 9(004)V9(001).
|
||||
03 T01TIMRRC PIC 9(004).
|
||||
*
|
||||
PROCEDURE DIVISION USING T01TIMPAR.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (0.0) *
|
||||
* サブモジュール名: 制御処理 *
|
||||
* 処理概要 : メインコントロール処理 *
|
||||
*****************************************************************
|
||||
0000MAINSOR SECTION.
|
||||
*
|
||||
*** 丸めモードにより分岐する
|
||||
EVALUATE T01TIMRRC
|
||||
*** モード0: 0.5時間単位・切上
|
||||
WHEN 0
|
||||
PERFORM 1000RNDHALF
|
||||
*** モード1: 0.1時間単位・切上
|
||||
WHEN 1
|
||||
PERFORM 2000RNDUP
|
||||
*** モード2: 0.1時間単位・切捨
|
||||
WHEN 2
|
||||
PERFORM 3000RNDDOWN
|
||||
*** モード3: 単純四捨五入(0.1h単位)
|
||||
WHEN 3
|
||||
PERFORM 4000RNDNORMAL
|
||||
WHEN OTHER
|
||||
*** モード指定なし→そのまま出力
|
||||
MOVE T01TIMHRS TO T01TIMOUT
|
||||
END-EVALUATE.
|
||||
*
|
||||
0000MAINSOR-EXT.
|
||||
GOBACK.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (1.0) *
|
||||
* サブモジュール名: 0.5時間単位・切上 *
|
||||
* 処理概要 : 30分単位で切り上げる *
|
||||
*****************************************************************
|
||||
1000RNDHALF SECTION.
|
||||
*
|
||||
*** 時間→分変換
|
||||
COMPUTE WRK-MINUTES =
|
||||
T01TIMHRS * 60.
|
||||
*** 30分単位で切り上げ
|
||||
DIVIDE WRK-MINUTES BY 30
|
||||
GIVING WRK-HOURS
|
||||
REMAINDER WRK-REMAINDER.
|
||||
IF WRK-REMAINDER > 0 THEN
|
||||
COMPUTE WRK-HOURS =
|
||||
WRK-HOURS + 1
|
||||
END-IF.
|
||||
*** 分→時間変換
|
||||
COMPUTE T01TIMOUT =
|
||||
WRK-HOURS * 0.5.
|
||||
*
|
||||
1000RNDHALF-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (2.0) *
|
||||
* サブモジュール名: 0.1時間単位・切上 *
|
||||
* 処理概要 : 6分単位で切り上げる *
|
||||
*****************************************************************
|
||||
2000RNDUP SECTION.
|
||||
*
|
||||
*** 時間→分変換
|
||||
COMPUTE WRK-MINUTES =
|
||||
T01TIMHRS * 60.
|
||||
*** 6分単位で切り上げ
|
||||
DIVIDE WRK-MINUTES BY 6
|
||||
GIVING WRK-HOURS
|
||||
REMAINDER WRK-REMAINDER.
|
||||
IF WRK-REMAINDER > 0 THEN
|
||||
COMPUTE WRK-HOURS =
|
||||
WRK-HOURS + 1
|
||||
END-IF.
|
||||
*** 分→時間変換
|
||||
COMPUTE T01TIMOUT =
|
||||
WRK-HOURS * 0.1.
|
||||
*
|
||||
2000RNDUP-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (3.0) *
|
||||
* サブモジュール名: 0.1時間単位・切捨 *
|
||||
* 処理概要 : 6分単位で切り捨てる *
|
||||
*****************************************************************
|
||||
3000RNDDOWN SECTION.
|
||||
*
|
||||
*** 時間→分変換
|
||||
COMPUTE WRK-MINUTES =
|
||||
T01TIMHRS * 60.
|
||||
*** 6分単位で切り捨て
|
||||
DIVIDE WRK-MINUTES BY 6
|
||||
GIVING WRK-HOURS
|
||||
REMAINDER WRK-REMAINDER.
|
||||
*** 分→時間変換
|
||||
COMPUTE T01TIMOUT =
|
||||
WRK-HOURS * 0.1.
|
||||
*
|
||||
3000RNDDOWN-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO: (4.0) *
|
||||
* サブモジュール名: 単純四捨五入(0.1h単位) *
|
||||
* 処理概要 : 0.05を加算して切捨 *
|
||||
*****************************************************************
|
||||
4000RNDNORMAL SECTION.
|
||||
*
|
||||
*** 0.05を加算してV9(1)に収める
|
||||
COMPUTE WRK-HOURS =
|
||||
T01TIMHRS + 0.05.
|
||||
*** V9(1)への代入で小数点第2位以下切捨
|
||||
MOVE WRK-HOURS TO T01TIMOUT.
|
||||
*
|
||||
4000RNDNORMAL-EXT.
|
||||
EXIT.
|
||||
Reference in New Issue
Block a user