以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  以身份证号为例,怎么实现筛选,求指点  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=190495)

--  作者:lrh9537
--  发布时间:2024/2/16 8:20:00
--  以身份证号为例,怎么实现筛选,求指点
假定表A,有“身份证号码”列


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

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

--  作者:wyz20130512
--  发布时间:2024/2/16 16:13:00
--  
http://www.foxtable.com/webhelp/topics/2624.htm
--  作者:有点蓝
--  发布时间:2024/2/17 20:07:00
--  
第1选项:len(身份证号码) <> 18
第2选项:无法筛选只能使用代码判断,参考2楼
第3选项:len(身份证号码) = 15
第4选项:身份证号码 is null

--  作者:lrh9537
--  发布时间:2024/2/18 9:53:00
--  
谢谢老师指点 
[此贴子已经被作者于2024/2/18 14:58:20编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间:2024/2/18 10:53:00
--  
假定证件号码=18位,那么校验身份证号码是否正确,如果不正确,显示筛选结果

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

请老师指点

--  作者:有点蓝
--  发布时间: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
--  发布时间:2024/2/18 15:00:00
--  

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

--  作者:有点蓝
--  发布时间:2024/2/18 15:03:00
--  
放到表属性的datacolchanged事件,不是放到项目属性里的全局表事件
--  作者:lrh9537
--  发布时间:2024/2/18 15:09:00
--  
校验不了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table