以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- loadfilter 无法多条件筛选问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141532) |
-- 作者:swagger -- 发布时间:2019/10/2 20:09:00 -- loadfilter 无法多条件筛选问题 无法多条件筛选 Dim txt As String = e.Form.Controls("TextBox").Text Dim tbl As Table = Tables("订单_Table1") With e.Form.Controls("textbox1") If txt = "" Then tbl.Filter = "" Else txt = "\'%" & txt & "%\'" tbl.DataTable.loadFilter = "([客户名称] like \'%" & .Value & "%\' Or [公司名称] like \'%" & .Value & "%\' )" tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With With e.Form.Controls("textbox2") If txt = "" Then tbl.Filter = "" Else txt = "\'%" & txt & "%\'" tbl.DataTable.loadFilter = "([产品名称] like \'%" & .Value & "%\' )" tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With |
-- 作者:swagger -- 发布时间:2019/10/2 20:10:00 -- 不在问题出在哪里 |
-- 作者:小马甲 -- 发布时间:2019/10/2 20:36:00 -- 把筛选的语句输出来,看看问题在哪里. |
-- 作者:swagger -- 发布时间:2019/10/3 11:06:00 -- 测试另外一段代码,也是不行: Dim Filter As String Dim tbl As Table = Tables("订单_table1") With e.Form.Controls("textbox1") If .Value IsNot Nothing Then tbl.DataTable.loadFilter = "客户名称 like \'%" & .Value & "%\' Or 公司名称 like \'%" & .Value & "%\' “ tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With With e.Form.Controls("textbox2") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "产品名称 like \'%" & .Value & "%\'” tbl.DataTable.loadFilter = Filter tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With With e.Form.Controls("DateTimePicker1") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "日期 >= \'" & .Value & "\'" tbl.DataTable.loadFilter = Filter tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With With e.Form.Controls("DateTimePicker2") If .Value IsNot Nothing Then If Filter <"" Then Filter = Filter & " And " End If Filter = Filter & "日期 >= \'" & .Value & "\'" tbl.DataTable.loadFilter = Filter tbl.DataTable.loadPage = 0 tbl.DataTable.load End If End With textbox1 和 textbox2 只能二选一,要么显示所有输入的客户名称或者公司名称,要么显示所有输入的产品名称,无法显示输入的客户名称和产品名称的搜索结果。 而datetimepicker则没问题,输入一个客户名称,选择时间,则可以显示那段时间的客户 [此贴子已经被作者于2019/10/3 11:07:18编辑过]
|
-- 作者:swagger -- 发布时间:2019/10/3 17:16:00 -- 花了一天时间研究,问题已解决。附解决办法:把loadfilter放在最后就可以 Dim Filter As String Dim tbl As Table = Tables("订单_table1") With e.Form.Controls("textbox1") If .Value IsNot Nothing Then Filter = "客户名称 like \'%" & .Value & "%\' Or 公司名称 like \'%" & .Value & "%\' “ End If End With With e.Form.Controls("textbox2") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "产品名称 like \'%" & .Value & "%\'” End If End With If Filter > "" Then tbl.DataTable.loadFilter = Filter tbl.DataTable.loadPage = 0 tbl.DataTable.load End If |