以文本方式查看主题 - 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 -- 给力! |