Initial import: 子系统B 前三本程序 production 资源

This commit is contained in:
qiuqiuqiu
2026-06-15 08:12:54 +08:00
commit 9813dd7772
26 changed files with 2655 additions and 0 deletions
@@ -0,0 +1,95 @@
# 詳細設計書
## 基本情報
| # | 項目 | 内容 |
|---|------|------|
| 1 | システム名 | 残業統計管理システム |
| 2 | プログラムID | SUB04CHK |
| 3 | プログラム名 | 項目チェックサブ |
| 4 | PGMタイプ | サブ |
| 5 | PGMパターン | 項目チェック |
| 6 | 機能概要 | チェックタイプに応じてデータ妥当性を検証する。 |
### 使用方法
```
CALL 'SUB04CHK' USING C01CHKPAR
```
### 入出力パラメータ
| COPY句 | ZANCHKAC |
|------------|----------|
| NO | 入出力区分 | 名称 | 属性 | 桁数 | 説明 |
|----|-----------|------|------|------|------|
| 1 | I | C01CHKTYP | X(8) | 8 | チェックタイプ(DATE/TIME/NUM) |
| 2 | I | C01CHKDAT | X(80) | 80 | チェック対象データ |
| 3 | O | C01CHKRRC | 9(4) | 4 | 復帰コード(0000:正常,0001:日付不正,0002:時刻不正,0003:数字不正) |
### リターンコード一覧
| NO | コード | 説明 |
|----|--------|------|
| 1 | 0000 | 正常終了(チェックOK) |
| 2 | 0001 | 日付不正(DATE指定時、月01〜12/日01〜31範囲外) |
| 3 | 0002 | 時刻不正(TIME指定時、時00〜23/分00〜59範囲外) |
| 4 | 0003 | 数字不正(NUM指定時、非数字文字を含む) |
| 5 | 0004 | チェックタイプ不明 |
---
## 処理詳細
```
1.制御処理(0000MAINSOR
1-1.C01CHKTYPにより分岐する。
1-1-1.C01CHKTYP = 'DATE' の場合
2000CHKDATEへ。
1-1-2.C01CHKTYP = 'TIME' の場合
3000CHKTIMEへ。
1-1-3.C01CHKTYP = 'NUM' の場合
4000CHKNUMへ。
1-1-4.その他の場合
C01CHKRRC = 0004 を設定し、1-2へ。
1-2.復帰(GOBACK)。
2.日付チェック(2000CHKDATE
2-1.C01CHKDATから年月日を抽出する。
YYYY = C01CHKDAT(1:4)
MM = C01CHKDAT(5:2)
DD = C01CHKDAT(7:2)
2-2.月チェック(MM)
2-2-1.MM < 1 OR MM > 12
→ C01CHKRRC = 0001 を設定し、2-5へ。
2-3.日チェック(DD)
2-3-1.DD < 1 OR DD > 31
→ C01CHKRRC = 0001 を設定し、2-5へ。
2-4.正常の場合
C01CHKRRC = 0000 を設定する。
2-5.復帰(0000MAINSOR-EXTへ)。
3.時刻チェック(3000CHKTIME
3-1.C01CHKDATから時分を抽出する。
HH = C01CHKDAT(1:2)
MM = C01CHKDAT(3:2)
3-2.時チェック(HH)
3-2-1.HH < 0 OR HH > 23
→ C01CHKRRC = 0002 を設定し、3-5へ。
3-3.分チェック(MM)
3-3-1.MM < 0 OR MM > 59
→ C01CHKRRC = 0002 を設定し、3-5へ。
3-4.正常の場合
C01CHKRRC = 0000 を設定する。
3-5.復帰(0000MAINSOR-EXTへ)。
4.数字チェック(4000CHKNUM
4-1.C01CHKDATに非数字文字が含まれるかチェックする。
INSPECT C01CHKDAT TALLYING WRK-NONDIGIT FOR NON-NUMERIC.
4-2.WRK-NONDIGIT > 0 の場合
C01CHKRRC = 0003 を設定し、4-4へ。
4-3.正常の場合
C01CHKRRC = 0000 を設定する。
4-4.復帰(0000MAINSOR-EXTへ)。
```