以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- filter 两个条件同时符合,该怎么写 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125269) |
-- 作者:淡月斜阳 -- 发布时间:2018/9/25 10:33:00 -- filter 两个条件同时符合,该怎么写 条件字符串通过,dropdownform生成如: PC000001|1号,PC000001|2号,PC000002|3号,PC000002|4号,PC000003|1号,PC000003|2号
查询代码如: Dim tb As WinForm.Table = e.Form.Controls("Table1") Dim b As New SQLCrossTableBuilder("统计表1","生产数据总查表") b.C b.HGroups.AddDef("日龄") b.VGroups.AddDef("批次号") b.VGroups.AddDef("舍号") b.Totals.AddDef("采食") b.Totals.AddDef("死淘_合计") b.Filter= "舍号=\'1号\'" b.OrderByTotal=True tb.Table.DataSource = b.BuildDataSource 怎么写filter:(批次号 = PC000001 且舍号=1号) 或 (批次号=PC000001 and 舍号=2号) 或 (批次号=PC000003 and 舍号=1号) |
-- 作者:goodhawk -- 发布时间:2018/9/25 10:45:00 -- b.Filter= " (舍号=\'1号\' AND 批次号 = \'PC000001\') or .... " |
-- 作者:淡月斜阳 -- 发布时间:2018/9/25 10:49:00 -- Dim str As String = "PC000001|1号,PC000001|2号,PC000002|3号,PC000002|4号,PC000003|1号,PC000003|2号" Dim fx1() As String = str.Split(",") Dim fil As String For Each s As String In fx1 Dim fx2() As String = s.Split("|") fil =fil & "or (批次号=\'" & fx2(0) & "\' And 舍号=\'" & fx2(1) & "\') " Next fil=fil.TrimStart("o","r"," ") Output.Show(fil) 结果如下: (批次号=\'PC000001\' And 舍号=\'1号\') or (批次号=\'PC000001\' And 舍号=\'2号\') or (批次号=\'PC000002\' And 舍号=\'3号\') or (批次号=\'PC000002\' And 舍号=\'4号\') or (批次号=\'PC000003\' And 舍号=\'1号\') or (批次号=\'PC000003\' And 舍号=\'2号\') 我是想问问,看有没有更简单的办法 |
-- 作者:有点甜 -- 发布时间:2018/9/25 11:50:00 -- Dim str As String = "PC000001|1号,PC000001|2号,PC000002|3号,PC000002|4号,PC000003|1号,PC000003|2号" str = "(批次号=\'" & str.replace(",", "\') or (批次号=\'").replace("|", "\' And 舍号=\'") & "\')" msgbox(str) |
-- 作者:淡月斜阳 -- 发布时间:2018/9/25 12:11:00 -- 原来这么简单。搞复杂了 |