以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 过滤条件增加代码 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=128794) |
-- 作者:weibu -- 发布时间:2018/12/15 9:06:00 -- 过滤条件增加代码 Dim dr As DataRow = DataTables("用户信息").find("用户名 = \'" & 用户名 & "\'") \'找到当前登录者所在的行 Dim filter As String = "1=2" If dr("职位") = "管理者" Then Dim drs = DataTables("部门信息").Select("层级 like \'" & dr("层级") & "%\'") For Each cdr As DataRow In drs Filter &= " or 当前所在部门 = \'" & cdr("所属部门") & "\'And 是否可用 = 1" Next Else If dr("职位") = "职员" Then Filter = "当前所在部门 = \'" & dr("所属部门") & "\'And 是否可用 = 1" End If Dim Str1 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter) e.Form().Controls("Button26").Text ="当前库存: " & Str1 Dim filter2 As String = “filter And 过保日期 <= #" & Date.Today & "#" 这句代码是否有问题?我想在filter上增加筛选条件;bue错提示AND附件有非布尔型 Dim Str2 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter2) e.Form().Controls("Button25").Text ="超保质期: " & Str2
[此贴子已经被作者于2018/12/15 9:23:38编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/12/15 9:26:00 -- Dim dr As DataRow = DataTables("用户信息").find("用户名 = \'" & 用户名 & "\'") \'找到当前登录者所在的行 If dr IsNot Nothing Then Dim filter As String = "1=2" If dr("职位") = "管理者" Then Dim drs = DataTables("部门信息").Select("层级 like \'" & dr("层级") & "%\'") For Each cdr As DataRow In drs Filter &= " or 当前所在部门 = \'" & cdr("所属部门") & "\' And 是否可用 = 1 " Next Else If dr("职位") = "职员" Then Filter = "当前所在部门 = \'" & dr("所属部门") & "\' And 是否可用 = 1 " End If Dim Str1 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter) e.Form.Controls("Button26").Text ="当前库存: " & Str1 Dim filter2 As String = filter & " And 过保日期 <= #" & Date.Today & "#" 这句代码是否有问题?我想在filter上增加筛选条件 Dim Str2 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter2) e.Form.Controls("Button25").Text ="超保质期: " & Str2 End If
|
-- 作者:weibu -- 发布时间:2018/12/15 9:41:00 -- 老师代码还是报错 错误所在事件: 详细错误信息: \'#\' 附近有语法错误。 |
-- 作者:有点蓝 -- 发布时间:2018/12/15 10:23:00 -- msgbox(filter2) 看看条件 如果是SqlServer数据库,#改为单引号
|
-- 作者:weibu -- 发布时间:2018/12/17 17:10:00 -- 部门多层级筛选不执行And部分 老师,如果登陆者是管理者下面管理多个部门,下面代码中的filter2 ,计数没有执行And 过保日期 <= \'" & Date.Today & "\'" ,如果是管理一个部门,则执行了filter2 这是为什么? 代码需要如何修改? Dim dr As DataRow = DataTables("用户信息").find("用户名 = \'" & 用户名 & "\'") \'找到当前登录者所在的行 e.Form.Controls("DateTimePicker1").Value = Date.Today e.Form.Controls("DateTimePicker2").Value = Date.Today If dr IsNot Nothing Then Dim filter As String = "1=2" If dr("职位") = "管理者" Then Dim drs = DataTables("部门信息").Select("层级 like \'" & dr("层级") & "%\'") For Each cdr As DataRow In drs Filter &= " or 当前所在部门 = \'" & cdr("所属部门") & "\' And 是否可用 = 1 " Next Else If dr("职位") = "职员" Then Filter = "当前所在部门 = \'" & dr("所属部门") & "\' And 是否可用 = 1 " End If Dim Str1 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter) e.Form.Controls("Button26").Text ="当前库存: " & Str1 Dim filter2 As String = filter & " And 过保日期 <= \'" & Date.Today & "\'" Dim Str2 As Integer = DataTables("溯源码").SQLCompute("Count(*)", filter2) ’登陆者下面管理多个部门时,计数的值是仅筛选了filter的部分,并没有执行And 过保日期 <= \'" & Date.Today & "\'" ,这是为什么? e.Form.Controls("Button25").Text ="超保质期: " & Str2 End if
|
-- 作者:有点甜 -- 发布时间:2018/12/17 17:21:00 -- 代码改成
Dim filter2 As String = "(" & filter & ") And 过保日期 <= \'" & Date.Today & "\'" |