当前位置:编程学习 > Foxpro >>

visual foxpro中怎样利用身份证自动产生性别字段值

答案:先判断字符长度,不是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 求高人帮助

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,