以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  目录树形式授权的权限分配  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=90965)

--  作者:czquickly
--  发布时间:2016/9/26 16:41:00
--  目录树形式授权的权限分配
我想实现的是先依靠A列里的内容定义条件1,再依靠B列的内容定义条件2,条件1和条件2之间关系为and。条件1、条件2里各自有几个小条件,每个条件之间关系为or。
是不时候DataTables("项目信息").LoadFilter = filter & "and (" & filter1 & ")"   这句代码哪里有问题?加载结果不符要求
或者有其它办法?
Dim filter As String = "1=2"
Dim filter1 As String = "1=2"
If User.Type <> UserTypeEnum.User OrElse Functions.Execute("ShouQuan","项目信息","") Then \' 如果是开发者或者管理员
    filter &= "or 项目组 IS NULL or 项目组 = \'自动化\'"
ElseIf Functions.Execute("ShouQuan","项目信息","编辑") _
    OrElse Functions.Execute("ShouQuan","项目信息","查看") Then
    filter &= "or 项目组 IS NULL or 项目组 = \'自动化部\'"
    If Functions.Execute("ShouQuan","项目信息","允许A") Then
        filter1 &= "or 项目类别 = \'A\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许B") Then
        filter1 &= "or 项目类别 = \'B\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许C/D") Then
        filter1 &= "or 项目类别 = \'C\' or 项目类别 = \'D\'"
    End If
ElseIf Functions.Execute("ShouQuan","项目信息","销售部查看")  Then
    filter = "销售部门 = \'" & User.Group & "\' and 项目组 = \'自动化部\'"
    If Functions.Execute("ShouQuan","项目信息","允许A") Then
        filter1 &= "or 项目类别 = \'A\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许B") Then
        filter1 &= "or 项目类别 = \'B\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许C/D") Then
        filter1 &= "or 项目类别 = \'C\' or 项目类别 = \'D\'"
    End If
ElseIf Functions.Execute("ShouQuan","项目信息","销售员查看") Then
    filter = "销售人员 = \'" & User.name & "\' and 项目组 = \'自动化部\'"
    If Functions.Execute("ShouQuan","项目信息","允许A") Then
        filter1 &= "or 项目类别 = \'A\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许B") Then
        filter1 &= "or 项目类别 = \'B\'"
    End If
    If Functions.Execute("ShouQuan","项目信息","允许C/D") Then
        filter1 &= "or 项目类别 = \'C\' or 项目类别 = \'D\'"
    End If
Else
    MessageBox.Show("当前用户不具备的权限!")
End If
DataTables("项目信息").LoadFilter = filter & "and (" & filter1 & ")"          
DataTables("项目信息").Load


--  作者:有点蓝
--  发布时间:2016/9/26 17:01:00
--  
1、所有条件连接时添加必要的空格:filter1 &= " or 项目类别 = \'A\' "

2、DataTables("项目信息").LoadFilter = "(" & filter & ") and (" & filter1 & ")"   

--  作者:czquickly
--  发布时间:2016/9/26 18:21:00
--  
给力!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看