我想实现的是先依靠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