以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教按用户角色设置允许编辑的列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176792) |
-- 作者:13315253800 -- 发布时间:2022/4/27 9:20:00 -- 请教按用户角色设置允许编辑的列 蓝老师您好!再请教按用户角色设置允许编辑列的问题 假设用户张三有"提交"角色,李四有"审核"角色,王五有"批准"角色,我要实现只有张三可以编辑1、2、3列,只有李四可以编辑4、5、6列,只有王五可以编辑7、8、9列,其他用户不可以编辑1-9列,但可以编辑其他列如十以后的列,我用下面的代码,没能实现以上要求。结果是张三、李四、王五任何列都可编辑,其他用户不可编辑。敬请蓝老师指教 \'按用户的角色指定不可编辑的列 Dim Filter As String Dim bj As String If User.IsRole ("提交")
Then
\'如果用户有提交角色 Select Case e.Col.Name Case "第一列","第二列","第三列"
e.Cancel = False \'可以编辑 End Select ElseIf User.IsRole ("审核")
Then \'如果用户有审核角色 Select Case e.Col.Name Case "第四列","第五列","第六列"
e.Cancel = False \'可以编辑 End Select ElseIf User.IsRole ("批准")
Then \'如果用户有批准角色 Select Case e.Col.Name Case "第七列","第八列","第九列"
e.Cancel = False \'可以编辑用False End Select Else e.Cancel = True \'其他用户都不可编辑 End If |
-- 作者:有点蓝 -- 发布时间:2022/4/27 9:59:00 -- Select Case e.Col.Name Case "第一列", "第二列", "第三列" If User.IsRole ("提交") = False Then e.Cancel = True End If Case "第四列", "第五列", "第六列" If User.IsRole ("审核") = False Then e.Cancel = True End If Case "第七列", "第八列", "第九列" If User.IsRole ("批准") = False Then e.Cancel = True End If End Select
|
-- 作者:13315253800 -- 发布时间:2022/4/27 10:11:00 -- 好,我试试,谢谢蓝老师! |
-- 作者:13315253800 -- 发布时间:2022/4/27 10:20:00 -- 蓝老师写的代码,太棒了!简洁、实用,满足了我的条件要求。再次谢谢! |