📄 check_idcard.prg
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: CHECK_IDCARD.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PROCEDURE check_idcard
LPARAMETER C_IDCARD , C_FLAG , C_FIELD , C_RECNO
LOCAL ERRORCODE , T_CSN , T_CSY , T_CSR , T_LAST
T_CSN = VAL(SUBSTR(C_IDCARD,7,4))
T_CSY = VAL(SUBSTR(C_IDCARD,11,2))
T_CSR = VAL(SUBSTR(C_IDCARD,13,2))
T_LAST = ASC(SUBSTR(C_IDCARD,18,1))
DO CASE
CASE LEN(ALLTRIM(C_IDCARD)) < 18
ERRORCODE = 1
CASE T_CSN > (YEAR(DATE()) - 18) .OR. T_CSN < (YEAR(DATE()) - 65) .OR. T_CSY > 12 .OR. ;
T_CSR > 31 .OR. EMPTY(DATE(T_CSN,T_CSY,T_CSR))
ERRORCODE = 2
CASE T_LAST < 48 .OR. (T_LAST > 57 AND T_LAST < 97) .OR. T_LAST > 122
ERRORCODE = 3
CASE C_FLAG
IF C_FIELD = 'Idcard'
Locate For &c_field==chren(c_idcard,1)
ELSE
Locate For &c_field==c_idcard
ENDIF
ERRORCODE = IIF(EOF(),0,4)
IF .NOT. EMPTY(C_RECNO)
GO C_RECNO
ENDIF
OTHERWISE
ERRORCODE = 0
ENDCASE
RETURN ERRORCODE
ENDPROC
*------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -