Foxtable(狐表)用户栏目专家坐堂 → 权限设置逻辑关系


  共有3443人关注过本帖树形打印复制链接

主题:权限设置逻辑关系

美女呀,离线,留言给我吧!
朱女士
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
权限设置逻辑关系  发帖心情 Post By:2021/4/23 11:26:00 [只看该作者]

老师您好!

    我有一个权限设置,逻辑关系比较复杂,我弄了一个上午也没弄出来,请帮忙!谢谢!我的逻辑是,有三个逻辑列:校对、开piao否、开piao完结,有用户分组三个:综合主管、生产主管、订单业务员。校对列的权限是生产主管的,开piao否和开piao完结两列同时是综合主管的。问题是一旦勾选了校对和开piao否和开piao完结后,编号列是所有用户都能打开,如果到货日期和发货日期是空白,订单业务员和生产主管可以编辑。我的代码没有达到以上意图。请指教!

Select Case e.Col.name
    Case "校对"
        If e.Row("校对") = True
            If User.Group <>"生产主管"  Then
               
                If e.Col.name="编号" Then
                   
                    E.cancel=False
                End If
                If User.Group ="生产主管" Or User.Group ="订单业务员" Then
                    If e.Row.isnull("到货日期") Or e.Row.isnull("发货日期")
                       
                        e.Cancel = False
                    End If
                End If
            End If
        End If
       

       Case "开piao否"
    If User.Group="综合主管"  Then
    e.Cancel =False
    ElseIf User.Group<>"综合主管"  Then
    e.Cancel =True
    End If
    If e.Col.name="编号" Then
    E.cancel=False
    Else If e.Row.isnull("到货日期") Or e.Row.isnull("发货日期") Then
    If User.Group ="生产主管" Or User.Group ="订单业务员" Then
    e.Cancel = False
    End If
    End If
    
    Case "开piao完结"
    If User.Group="综合主管"  Then
    e.Cancel =False
    ElseIf User.Group<>"综合主管"  Then
    e.Cancel =True
    End If
    
    If e.Col.name="编号" Then
    E.cancel=False
    Else If e.Row.isnull("到货日期") Or e.Row.isnull("发货日期") Then
    If User.Group ="生产主管" Or User.Group ="订单业务员" Then
    e.Cancel = False
    End If
    End If
    End Select


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 11:47:00 [只看该作者]

Select Case e.Col.name
    Case "校对"
        e.cancel=(User.Group <>"生产主管")
    Case "开piao否","开piao完结"
        e.cancel=(User.Group <>"综合主管")
    Case "编号"
        If e.Row("校对") = False OrElse  e.Row("开piao否") = False OrElse  e.Row("开piao完结") = False Then
            e.cancel=True
        End If
    Case "到货日期","发货日期"
        If User.Group <>"生产主管" AndAlso User.Group <>"订单业务员" OrElse e.Row.isnull(e.Col.name)=false
            e.cancel=True
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
朱女士
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2021/4/23 15:40:00 [只看该作者]

老师您好!

上述代码基本满足功能,但是我想“校对”列勾选后的行,锁住所在的行的所有列,不允许任何人编辑,然后根据条件限定哪列能编辑。我的代码全部列出所有列名,我没找到好办法。谢谢!

Select Case user.group
    Case "总经理","副总经理","财务主管"
        e.Cancel = True
End Select

If e.Col.name="校对" Then
    If user.group <> "生产主管" Then
        e.cancel=True
    End If
End If
If  e.Row("校对")=True
e.cancel=e.Row("净重")
e.cancel=e.Row("含税金额")
e.cancel=e.Row("不开piao金额")
e.cancel=e.Row("订单数量")
e.cancel=e.Row("不开piao金额")
e.cancel=e.Row("自产重量")
e.cancel=e.Row("自产含税额")
e.cancel=e.Row("自产不开piao额")
e.cancel=e.Row("外协重量")

.....
End If
    Select Case e.Col.name
           Case "开piao否","开piao完结"
            e.cancel=(User.Group <>"综合主管")
        Case "到货日期","发货日期"
            If User.Group ="生产主管" AndAlso User.Group ="订单业务员" OrElse e.Row.isnull(e.Col.name)=True
                e.cancel=False
             End If
         Case "校对日期"
             If user.group="生产主管" Then
               
                 e.Row("校对日期") = Date.Today()
             End If
     End Select
 If e.Row("校对")=False Then
     e.Row("校对日期")=Nothing
 End If


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 15:55:00 [只看该作者]

Select Case e.Col.name
    Case "校对"
        e.cancel=(User.Group <>"生产主管")
    Case "开piao否","开piao完结"
        e.cancel=(User.Group <>"综合主管")
    Case "编号"
        If e.Row("校对") = False OrElse  e.Row("开piao否") = False OrElse  e.Row("开piao完结") = False Then
            e.cancel=True
        End If
    Case "到货日期","发货日期"
        If User.Group <>"生产主管" AndAlso User.Group <>"订单业务员" OrElse e.Row.isnull(e.Col.name)=false
            e.cancel=True
        End If
case else 
if e.Row("校对") = False then
e.cancel=True
end if
End Select

 回到顶部