以文本方式查看主题

-  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=142085)

--  作者:blackzhu
--  发布时间:2019/10/18 9:49:00
--  如何用鼠标点上去后恢复原来的数据

DrawCell事件不仅用于标记数据,还可以用他“篡改”数据。
假定有一名为“密码”的列,要求只有经理级别的用户才能查看该列的数据,其他人查看的时候,看到的只是"****"。
实现的代码也非常简单,在该表的DrawCell事件中输入:

If User.Group = "经理" Then \'如果是经理
    Return \'那么返回,正常显示数据
End
If
If
e.Col.Name = "密码" Then \'如果正在绘制的是密码列
    e.Text =
"****" \'那么用*代替原来的内容
End
IF

DrawCell事件只是影响显示内容,并不会对真实的值有任何影响



这个如何用鼠标点上去后恢复原来的数据?


--  作者:有点蓝
--  发布时间:2019/10/18 9:53:00
--  
If User.Group = "经理" orelse e.row.index = e.table.rowsel andalso e.col.index = e.table.colsel Then \'如果是经理或者是点选的单元格
    Return \'那么返回,正常显示数据
End
 If

--  作者:blackzhu
--  发布时间:2019/10/18 10:06:00
--  
哦,原来可以这样用
--  作者:blackzhu
--  发布时间:2019/10/18 10:56:00
--  
同样的方法,如果带小计功能就报错了,这个是什么情况?
--  作者:有点蓝
--  发布时间:2019/10/18 11:05:00
--  
If User.Group = "经理" orelse e.row.index > -1 andalso  e.row.index = e.table.rowsel andalso e.col.index = e.table.colsel Then

--  作者:blackzhu
--  发布时间:2019/10/18 11:28:00
--  
依然报错
--  作者:有点蓝
--  发布时间:2019/10/18 12:04:00
--  
If e.row.index > -1 andalso ( User.Group = "经理" orelse  andalso  e.row.index = e.table.rowsel andalso e.col.index = e.table.colsel) Then
--  作者:blackzhu
--  发布时间:2019/10/18 12:15:00
--  
不报错,但是展示真实数据有问题,只有第一条正常返回
[此贴子已经被作者于2019/10/18 12:22:32编辑过]

--  作者:blackzhu
--  发布时间:2019/10/18 12:30:00
--  
e.row.index = e.table.rowsel  在分组统计下  e.table.rowsel 跟 index 是不一样的,所以有问题
--  作者:有点蓝
--  发布时间:2019/10/18 13:38:00
--  
If User.Group = "经理" orelse e.row.index = e.table.position andalso e.col.index = e.table.colsel Then