* Arg1 형식 : 0123456789012 형식으로 입력
* JUMINCHK Function의 Return Code
* 0 = 정상
* 1 = 길이 오류(13자리 미만)
* 2 = 숫자 오류(0-9외 문자)
* 3 = 날짜 오류(YYMMDD)
* 4 = 체크숫자 오류(Check Digit)
Ans = ""
* 길이 검사
Begin Case
Case LEN(TRIM(Arg1)) = 13
* 숫자 검사[0-9]
* NUM 함수 : 숫자이면 1, 그외는 0 을 Return 함
Begin Case
Case (NUM(Substrings(Arg1,1,1)) + NUM(Substrings(Arg1,2,1)) + NUM(Substrings(Arg1,3,1))+ NUM(Substrings(Arg1,4,1)) + NUM(Substrings(Arg1,5,1))+ NUM(Substrings(Arg1,6,1)) + NUM(Substrings(Arg1,7,1))+ NUM(Substrings(Arg1,8,1)) + NUM(Substrings(Arg1,9,1))+ NUM(Substrings(Arg1,10,1)) + NUM(Substrings(Arg1,11,1)) + NUM(Substrings(Arg1,12,1)) + NUM(Substrings(Arg1,13,1))) = 13
* 날짜 검사[YYMMDD]
Begin Case
Case Substrings(Arg1,3,2) > '12'
Ans = "3"
Case Substrings(Arg1,3,2) = '00'
Ans = "3"
Case Substrings(Arg1,5,2) > '31'
Ans = "3"
Case Substrings(Arg1,5,2) = '00'
Ans = "3"
Case Substrings(Arg1,3,2) = '02' AND Substrings(Arg1,5,2) > '29'
Ans = "3"
* 체크숫자 검사[Check Digit]
Case @True
Begin Case
Case Substrings(Arg1,13,1) = Right(Oconv((11 - Mod((Int(Substrings(Arg1,1,1)) * 2 + Int(Substrings(Arg1,2,1)) * 3 + Int(Substrings(Arg1,3,1)) * 4 + Int(Substrings(Arg1,4,1)) * 5 + Int(Substrings(Arg1,5,1)) * 6 + Int(Substrings(Arg1,6,1)) * 7 + Int(Substrings(Arg1,7,1)) * 8 + Int(Substrings(Arg1,8,1)) * 9 + Int(Substrings(Arg1,9,1)) * 2 + Int(Substrings(Arg1,10,1)) * 3 + Int(Substrings(Arg1,11,1)) * 4 + Int(Substrings(Arg1,12,1)) * 5),11)),"MD0"),1)
Ans = "0"
* 체크숫자 검사[Check Digit]에서 오류인 것
Case @True
Ans = "4"
End Case
End Case
* 숫자 검사[0-9]에서 오류인 것
Case @True
Ans = "2"
End Case
* 길이 검사에서 오류인 것
Case @True
Ans = "1"
End Case
Return(Ans)
댓글 없음:
댓글 쓰기