Add Subsystem A (KIN01INP/KIN02UPD/KIN03EXP) + update SUB04CHK/ZAN01CHK

This commit is contained in:
qiuqiuqiu
2026-06-26 07:50:50 +08:00
parent 6754df70cd
commit a08e33ea19
18 changed files with 3051 additions and 12 deletions
+54 -11
View File
@@ -25,10 +25,12 @@
*****************************************************************
WORKING-STORAGE SECTION.
*****************************************************************
01 WRKARA.
03 WRK-RETURN-CODE PIC 9(004).
03 WRK-SIGN PIC S9(004).
03 WRK-NN PIC 9(004).
01 WRKARA.
03 WRK-RETURN-CODE PIC 9(004).
03 WRK-SIGN PIC S9(004).
03 WRK-NN PIC 9(004).
03 WRK-DIGIT PIC 9(004).
03 WRK-ALPHA PIC 9(004).
*
*****************************************************************
* リンケージエリア *
@@ -130,11 +132,21 @@
*****************************************************************
3000CHKNUM SECTION.
*
*** 非数字文字が含まれていないかチェック
*** 空チェック(全スペース→正常=オプショナル)
INSPECT C01CHKDAT
TALLYING WRK-NN FOR
CHARACTERS BEFORE INITIAL SPACE.
IF WRK-NN > 0 THEN
LEADING SPACES.
IF WRK-NN = LENGTH OF C01CHKDAT
MOVE ZERO TO WRK-RETURN-CODE
GO TO 3000CHKNUM-EXT
END-IF.
*** 数字(0-9)とスペースのみをカウント
INSPECT C01CHKDAT
TALLYING WRK-NN
FOR ALL "0" "1" "2" "3" "4"
"5" "6" "7" "8" "9"
SPACE.
IF WRK-NN NOT = LENGTH OF C01CHKDAT
MOVE 0003 TO WRK-RETURN-CODE
GO TO 3000CHKNUM-EXT
END-IF.
@@ -155,11 +167,42 @@
MOVE 0004 TO WRK-RETURN-CODE
GO TO 4000CHKEMP-EXT
END-IF.
*** 英数字チェック
*** チェック(全8桁がスペース→必須エラー)
IF C01CHKDAT(1:8) = SPACES
MOVE 0004 TO WRK-RETURN-CODE
GO TO 4000CHKEMP-EXT
END-IF.
*** 数字(0-9)カウント
MOVE ZERO TO WRK-DIGIT.
INSPECT C01CHKDAT(1:8)
TALLYING WRK-NN FOR
CHARACTERS BEFORE INITIAL SPACE.
IF WRK-NN > 0 THEN
TALLYING WRK-DIGIT
FOR ALL "0" "1" "2" "3" "4"
"5" "6" "7" "8" "9".
*** 英字(A-Z a-z)カウント
MOVE ZERO TO WRK-ALPHA.
INSPECT C01CHKDAT(1:8)
TALLYING WRK-ALPHA
FOR ALL "A" "B" "C" "D" "E"
"F" "G" "H" "I" "J"
"K" "L" "M" "N" "O"
"P" "Q" "R" "S" "T"
"U" "V" "W" "X" "Y"
"Z"
"a" "b" "c" "d" "e"
"f" "g" "h" "i" "j"
"k" "l" "m" "n" "o"
"p" "q" "r" "s" "t"
"u" "v" "w" "x" "y"
"z".
*** スペースカウント
MOVE ZERO TO WRK-NN.
INSPECT C01CHKDAT(1:8)
TALLYING WRK-NN
FOR ALL SPACE.
*** 英数字以外(特殊文字)がないかチェック
ADD WRK-DIGIT TO WRK-ALPHA.
ADD WRK-NN TO WRK-ALPHA.
IF WRK-ALPHA NOT = 8
MOVE 0004 TO WRK-RETURN-CODE
GO TO 4000CHKEMP-EXT
END-IF.