Foxtable(狐表)用户栏目专家坐堂 → 以身份证号为例,怎么实现筛选,求指点


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

主题:以身份证号为例,怎么实现筛选,求指点

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


加好友 发短信
等级:小狐 帖子:369 积分:3088 威望:0 精华:0 注册:2012/11/16 12:19:00
以身份证号为例,怎么实现筛选,求指点  发帖心情 Post By:2024/2/16 8:20:00 [只看该作者]

假定表A,有“身份证号码”列


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240216081739.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2024/2/16 8:20:27编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2024/2/16 16:13:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/2624.htm

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


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

第1选项:len(身份证号码) <> 18
第2选项:无法筛选只能使用代码判断,参考2楼
第3选项:len(身份证号码) = 15
第4选项:身份证号码 is null

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


加好友 发短信
等级:小狐 帖子:369 积分:3088 威望:0 精华:0 注册:2012/11/16 12:19:00
  发帖心情 Post By:2024/2/18 9:53:00 [只看该作者]

谢谢老师指点 
[此贴子已经被作者于2024/2/18 14:58:20编辑过]

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/18 10:02:00 [只看该作者]

j建一个逻辑列,名称为【号码位数异常】,datacolchanged事件

if e.datacol.name = "证件号码" then
if e.datarow.isnull("证件号码") then
e.datarow("号码位数异常") =false
else
e.datarow("号码位数异常") = not ValidPIN(e.datarow("证件号码"))
end if
end if

然后筛选按钮
Dim Filter As String
If e.Form.Controls("RadioButton1").Checked Then
    Filter = "len(证件号码) <> 18"
elseIf e.Form.Controls("RadioButton2").Checked Then
    Filter = "号码位数异常=true"
elseIf e.Form.Controls("RadioButton3").Checked Then
    Filter = "len(证件号码) =15"
elseIf e.Form.Controls("RadioButton4").Checked Then
    Filter = "证件号码 is null"
End If
If Filter > "" Then
    Tables("户信息总表").Filter = Filter
End If


[此贴子已经被作者于2024/2/18 10:10:03编辑过]

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


加好友 发短信
等级:小狐 帖子:369 积分:3088 威望:0 精华:0 注册:2012/11/16 12:19:00
  发帖心情 Post By:2024/2/18 10:53:00 [只看该作者]

假定证件号码=18位,那么校验身份证号码是否正确,如果不正确,显示筛选结果

 If "len(证件号码) = 18" Then
        If ValidPIN("证件号码") = False Then
            Filter = "不符合校验规则 = True"
        End If 
    End If 

请老师指点

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/18 11:03:00 [只看该作者]

建一个逻辑列,名称为【不符合校验规则】,datacolchanged事件

if e.datacol.name = "证件号码" then
if e.datarow.isnull("证件号码") then
e.datarow("不符合校验规则") =false
else
e.datarow("不符合校验规则") = not ValidPIN(e.datarow("证件号码"))
end if
end if

筛选按钮
……
elseIf e.Form.Controls("RadioButton2").Checked Then
    Filter = "不符合校验规则=true"
……

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


加好友 发短信
等级:小狐 帖子:369 积分:3088 威望:0 精华:0 注册:2012/11/16 12:19:00
  发帖心情 Post By:2024/2/18 15:00:00 [只看该作者]


其他功能都实现了,只有校验没成功,请老师再指点下,谢谢
[此贴子已经被作者于2024/2/18 15:09:41编辑过]

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/18 15:03:00 [只看该作者]

放到表属性的datacolchanged事件,不是放到项目属性里的全局表事件

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


加好友 发短信
等级:小狐 帖子:369 积分:3088 威望:0 精华:0 注册:2012/11/16 12:19:00
  发帖心情 Post By:2024/2/18 15:09:00 [只看该作者]

校验不了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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