Foxtable(狐表)用户栏目专家坐堂 → [求助]公式列根据身份证号码列读出性别?


  共有2093人关注过本帖树形打印复制链接

主题:[求助]公式列根据身份证号码列读出性别?

帅哥哟,离线,有人找我吗?
老鼠
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
[求助]公式列根据身份证号码列读出性别?  发帖心情 Post By:2017/5/20 9:45:00 [只看该作者]

刚开始学习使用foxtable就遇到问题:如题所示iif(len(A3) >= 17, iif(convert(substring(A3, 17, 1),'System.Int64') % 2 = 1, '男', '女'), null)这是我在网上搜到的,当然还有这个帮助文件里的:Dim Identify As String = "410110197109172433"
Dim
Sex As String = ReadSex(Identify)
Output.Show(Sex)
但结果都不能满足我的要求.第一个公式无法判定身份号码是否正确,过去的老身份证号码也无法读取结果.帮助里的提示:"Identify"提示运算符后缺少操作数.请大家帮忙解决下.

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/20 9:57:00 [只看该作者]

前面一段是表达式,后面一段是代码,使用的地方不一样,不要混淆了

到命令窗口执行下面代码


Dim Identify As String = "410110197109172433"
If ValidPIN(Identify) Then
    Dim Sex As String = ReadSex(Identify)
    msgbox(Sex)
Else
    msgbox("错误的身份证号")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2017/5/20 16:06:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
也不知道对不对,但操作时没有作用.请版主给学习方向与指导.
[此贴子已经被作者于2017/5/20 16:07:06编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/20 16:16:00 [只看该作者]

基础数据表的DataColChanged事件

If e.DataCol.Name = "公民身份号码" Then '如果更改的是身份证号码列
    If e.DataRow.IsNull("
公民身份号码"Then '身份证号码是否为空
        e.
DataRow("性别") = Nothing
    
Else
        e.
DataRow("
性别") = ReadSex(e.DataRow("公民身份号码"))
    End
 If
End
 
If



 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2017/5/20 17:08:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:5.png
图片点击可在新窗口打开查看
不知道是我太笨还是没有进入状态.为什么会有这样的提示呢?

 这个公民身份号码是A3列,性别是A4列其中A4是公式列.

[此贴子已经被作者于2017/5/20 17:09:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/20 17:11:00 [只看该作者]

确实没有进入状态。

您只是改了默认的3个表的列标题吧。建议连列名称和表名称都改掉吧。否则以后很多麻烦的



 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2017/5/20 17:26:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:6.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

这些我都看了,就是不知道为什么会这样呢?能给具体点吗?求解答.
图片点击可在新窗口打开查看此主题相关图片如下:7.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/5/20 17:27:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yinyb36
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2017/5/21 9:25:00 [只看该作者]

A4列为表达式列,需改为数据列,执行 DataColChanged事件


[此贴子已经被作者于2017/5/21 9:38:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
老鼠
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:360 积分:3606 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2017/5/21 10:41:00 [只看该作者]

谢谢!A4列改成数据列后没有再报错了.那能再请问下这个事件与计算公式的区别吗?为什么表事件就能达到这个效果呢?


 回到顶部
帅哥哟,离线,有人找我吗?
yinyb36
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2017/5/21 17:31:00 [只看该作者]

表达式的优点是计算速度快,不占储存
    缺点是函数少,局限性大

数据列的优点是计算灵活
    缺点是代码不严谨容易出错
     计算速度没有表达式快
     代码的质量影响计算速度

 回到顶部
总数 11 1 2 下一页