以文本方式查看主题

-  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
--  
这种代码能够判断角色?!!用户表数据是怎么样的,角色怎么定义的,用户登录后使用什么变量保存角色的?