以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口文本框中身份证号码后四位显示为“*”号问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179648)

--  作者:hanzhang98
--  发布时间:2022/9/1 17:17:00
--  [求助]窗口文本框中身份证号码后四位显示为“*”号问题
各位老师好!

窗口文本框控件“TextBox1”绑定到副本表“AD表.身份证号码”,想实现将身份证号后四位显示为“****”,请教老师,如何写代码,代码写在那里。谢谢。

[此贴子已经被作者于2022/9/1 17:21:36编辑过]

--  作者:有点蓝
--  发布时间:2022/9/1 17:33:00
--  
DataFormat:http://www.foxtable.com/webhelp/topics/0737.htm

e.Text = e.Value.substring(0,14) & "****"

--  作者:hanzhang98
--  发布时间:2022/9/1 17:43:00
--  
谢谢老师!
--  作者:hanzhang98
--  发布时间:2022/9/2 10:19:00
--  
老师好!
窗口控件在打开时是非编辑状态(即禁止编辑),如何才能让控件在非编辑状态获得焦点时也还是显示为“****”。谢谢
[此贴子已经被作者于2022/9/2 10:22:16编辑过]

--  作者:有点蓝
--  发布时间:2022/9/2 10:22:00
--  
如果是绑定的,没有办法。除非数据库里也是存储的“****”

考虑不绑定,自己使用代码赋值和取值,在给控件赋值的时候改为“****”

--  作者:hanzhang98
--  发布时间:2022/9/2 10:32:00
--  
谢谢老师!
如果想实现上述功能,只能是在数据库中设置两个“身份证号”列,一列真、一列假,分别按操作权限在表列或窗口控件动态绑定。对否?

--  作者:有点蓝
--  发布时间:2022/9/2 11:31:00
--  
是的。假的可以考虑使用表达式列
--  作者:hanzhang98
--  发布时间:2022/9/2 14:54:00
--  
再请教老师,比如列“身份证A”为真、“身份证B”是假且为表达式列,表达式该如何写。谢谢。
--  作者:有点蓝
--  发布时间:2022/9/2 15:04:00
--  
IIF(身份证A is null,null,IIF(len(身份证A) > 4,Substring(身份证A, 1, len(身份证A) - 4) + \'****\',\'****\'))
--  作者:hanzhang98
--  发布时间:2022/9/2 15:12:00
--  
谢谢老师。