答案:先判断字符长度,不是15位或18位的全部跳出,然后还得判断是否符合编码规范(比如出生月不能超过12,字符中除第18位外,不能有字母等等),如果粗糙点,也可以不判断,15位身份证号最后一位或18位身份证号的第17位,奇数是男,偶数是女。写在“失去焦点”(报歉忘记了是什么fcous了)里,给性别字段赋值。
--有点笼统,但顺序是这样的了,自己琢嚰,才能写出属于自己的。加油。
其他:个人觉得好像无法判断了,因为不解现在的身份证号的产生规则。以前15位身份证是最后一位是单数是男,双数是女。现在我看好像有的女的身份证最后第二位就是以前第15位的,现在也有单数的,也在求索中。 先用len判断身份证号是15还是18,如果15位取最后一位,18则取倒数第二位,再判断这个数字是奇数还是偶数,奇数就是男性,偶数就是女性 sfzh=tablename.sfzh
*sfzh="421022198102120012"
do case
case len(allt(sfzh))=15
xbdm=val(substr(sfzh,15,1))
if mod(xbdm,2)=0
xb="女"
else
xb="男"
endif
case len(allt(sfzh))=18
xbdm=val(substr(sfzh,17,1))
if mod(xbdm,2)=0
xb="女"
else
xb="男"
endif
endcase
?xb 18位身份证:
iif(substr(身份证号,17,1)="1","男","女")
上一个:如何用Visual Foxpro做元旦倒计时? 拜托发到zhuangk999@qq.com。谢谢!
下一个:在foxpro中 ?val(SUBSTR(STR(62858),2,1)) 为什么显示的是 0.00 求高人帮助