以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]单元格权限代码编写问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176741)
|
-- 作者:Cloud
-- 发布时间:2022/4/25 13:18:00
-- [求助]单元格权限代码编写问题
大师:
下面这段代码写的有点长,能不能改的简单一点
If e.Col.Name = "样衣类型" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "样衣次数" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "下单日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "交货日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审批" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审批人" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审批日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审样板" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审板师" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审板日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审样衣" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审样师" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "审样日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "IE主管" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If
谢谢
|
-- 作者:有点蓝
-- 发布时间:2022/4/25 13:38:00
--
这代码是想实现什么功能?
|
-- 作者:Cloud
-- 发布时间:2022/4/25 14:49:00
--
锁定单元格编辑权限,这个是写在表事件的PrepareEdit里面的
|
-- 作者:有点蓝
-- 发布时间:2022/4/25 15:00:00
--
按什么规则锁定?
|
-- 作者:Cloud
-- 发布时间:2022/4/25 17:18:00
--
If e.Col.Name = "样衣类型" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "样衣次数" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "下单日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If If e.Col.Name = "交货日期" Then \'如果修改的是标注列 If DataTables("用户表").GetComboListString("角色") <> "业务员" Then \'且用户不是张经理 e.Cancel = True \'那么禁止编辑? End If End If 比如:这个表有四列只能是业务员才能编辑,其他人不可以编辑,但是写这么长的代码,就是有没有可以简洁一些的写法
|
-- 作者:有点蓝
-- 发布时间:2022/4/25 17:25:00
--
这种代码能够判断角色?!!用户表数据是怎么样的,角色怎么定义的,用户登录后使用什么变量保存角色的?
|