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


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

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

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106711 积分:542750 威望: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

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


加好友 发短信
等级:超级版主 帖子:106711 积分:542750 威望: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:106711 积分:542750 威望: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"
……

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


加好友 发短信
等级:超级版主 帖子:106711 积分:542750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/18 15:03:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:106711 积分:542750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/18 15:34:00 [显示全部帖子]

参考7楼的代码,不要自己加一些多余的代码
[此贴子已经被作者于2024/2/18 15:33:56编辑过]

 回到顶部