close

傳入身分證號, 傳回是否正確?

//身分証字號檢查
integer li_v1, li_v2, li_v3, li_v4, li_v5, li_v6, li_v7, li_v8, li_v9, li_v10
integer li_v11, li_v12
boolean lb_retval
li_v11 = POS(space(9)+'ABCDEFGHJKLMNPQRSTUVWXY', MID(as_sid,1,1))
/* 轉第一碼之編號
A B C D E F G H J K L
10 11 12 13 14 15 16 17 18 19 20
M N P Q R S T U V X Y
21 22 23 24 25 26 27 28 29 30 31
*/
//乘上權數
li_v1 = int(li_v11/10) * 1
li_v2 = mod(li_v11, 10) * 9
li_v3 = integer(mid(as_sid,2,1)) * 8
li_v4 = integer(mid(as_sid,3,1)) * 7
li_v5 = integer(mid(as_sid,4,1)) * 6
li_v6 = integer(mid(as_sid,5,1)) * 5
li_v7 = integer(mid(as_sid,6,1)) * 4
li_v8 = integer(mid(as_sid,7,1)) * 3
li_v9 = integer(mid(as_sid,8,1)) * 2
li_v10= integer(mid(as_sid,9,1)) * 1
//計算檢核碼
li_V12 = 10 - MOD(li_v1+li_v2+li_v3+li_v4+li_v5+li_v6+li_v7+li_v8+li_v9+li_v10,10)
IF (li_v12=10) THEN li_v12 = 0

IF(integer(MID(as_sid,10,1))=li_v12) THEN
lb_retval = TRUE
ELSE
lb_retval = FALSE
END IF
return lb_retval

 

  

arrow
arrow
    全站熱搜

    PB 發表在 痞客邦 留言(0) 人氣()