起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 399|回复: 18

【结】[请求]如何屏蔽某条记录的某些字段内容

[复制链接]
发表于 2009-9-17 10:11:11 | 显示全部楼层 |阅读模式
同一个条数据,
在需要屏蔽的窗体中,屏蔽的字段显示为“*******”
在不屏蔽的窗体中,又显示原来本身内容

同一数据表,不同数据屏蔽的字段又都不相同,没有规律。
回复

使用道具 举报

发表于 2009-9-17 10:13:13 | 显示全部楼层
设置数据集策略--字段的隐藏。
具体代码写法你可以在论坛里搜一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-17 10:23:21 | 显示全部楼层
隐藏的功能是查询的,显示出来所有的数据中隐藏某一条数据的某些字段。隐藏的字段不相同,设置数据策略不行啊。
回复 支持 反对

使用道具 举报

发表于 2009-9-17 10:25:09 | 显示全部楼层
哦,那你试试逻辑字段的事件OnGetASXXXXX
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-17 10:27:22 | 显示全部楼层
例如:
字段名:    编号   客户名称  联系人
内容:     00001      广西运通  何超
           00002      南宁科技  *****

南宁科技 这个客户要求屏蔽联系人,那只能在允许的人可以看到。而在某些查询功能就显示上面的内容。
回复 支持 反对

使用道具 举报

发表于 2009-9-17 10:28:50 | 显示全部楼层
看4楼。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-17 15:32:15 | 显示全部楼层
还是一样屏蔽的话,整个字段下的内容都屏蔽掉了。

11.jpg

20.1 KB, 下载次数: 185

回复 支持 反对

使用道具 举报

发表于 2009-9-17 15:56:05 | 显示全部楼层
怎么会呢。你怎么做的?
OnGet事件中要根据一定的条件来设置是否让Value=****

看我的测试(当商品编号是1的时候显示****)

snap1.png

1.95 KB, 下载次数: 173

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-17 16:03:05 | 显示全部楼层
OnGet事件中 我不知道应该怎么赋值一个变量进去。
我的实现方法是在另外建立一个表(用来记录需要屏蔽哪条记录的哪个字段如图)

然后用下面的代码来屏蔽的

for i:=1 to dx.FieldCount -1 do
     begin
        for y:=1 to dy.FieldCount-1 do
        begin
             if(dx.Fields.Fields.FieldName = dy.Fields.Fields[y].FieldName) then
             begin
                  if(dx.Fields.Fields.AsInteger = 1)  then
                  begin
                     dy.Fields.Fields[y].Visible := false;
                  end else dy.Fields.Fields[y].Visible := true;
             end;
        end;

22.jpg

9.13 KB, 下载次数: 175

回复 支持 反对

使用道具 举报

发表于 2009-9-17 16:06:51 | 显示全部楼层
我是这样实现的。
procedure TB.BizFieldDef_SPBHGetAsString(Field: TDataField; var Value: string);
begin
  if Field.AsString = '1' then
    Value := '*******'
  else
    Value :=  Field.AsString;
end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-16 01:53 , Processed in 0.044328 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表