以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  针对表中某列设置多个过滤条件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142533)

--  作者:Shipman
--  发布时间:2019/10/30 9:59:00
--  针对表中某列设置多个过滤条件

老师好!

对于表是否可实现在前一次过滤的基础上继续过滤?

 

对于"凭证"表的“科目编码”列动态设置过滤条件如何实现过滤?

例如:需要过滤“科目编码”为kmbm=\'1122‘,‘1123,‘2202’(根据选择出来的科目编码过滤)等等

[此贴子已经被作者于2019/10/30 10:05:47编辑过]

--  作者:有点蓝
--  发布时间:2019/10/30 10:01:00
--  
具体一点
--  作者:dzy1232016
--  发布时间:2019/10/30 10:44:00
--  
kmbm in (\'1122\',\'1123\',\'2202\')这个?
[此贴子已经被作者于2019/10/30 10:44:29编辑过]

--  作者:Shipman
--  发布时间:2019/10/30 10:51:00
--  

如果是具体的数值用 IN 是可以的   如果是变量就不行

 


--  作者:有点蓝
--  发布时间:2019/10/30 10:57:00
--  
肯定可以。什么变量,存储的是什么内容?
--  作者:Shipman
--  发布时间:2019/10/30 14:22:00
--  

 

谢谢“有点蓝”老师  和 “dzy1232016”  !

在两位的启发下,已解决。还是动态合成表达式没有掌握好。

Dim xmbm As String = Tables("查询条件").Current("项目编码")
Dim ksny As String = Tables("查询条件").Current("开始年月")
Dim jzny As String = Tables("查询条件").Current("截止年月")
Dim kmbm As String = DataTables("项目科目").GetComboListString("科目编码","[显影] = \'false\'")
Output.Show(xmbm)
Output.Show(ksny)
Output.Show(jzny)
Output.Show(kmbm)
kmbm = kmbm.Replace("|","\',\'")
Output.Show(kmbm)
Tables("凭证").Filter = "[项目编码] = \'" & xmbm & "\' and [制单日期] >= \'" & ksny & "\' and [制单日期] <= \'" & jzny & "\' And [科目编码] not In (\'" & kmbm & "\')"

返回数据:

3002
2019-02-01
2019-08-31
112301|112303|220202|220204
112301\',\'112303\',\'220202\',\'220204

[此贴子已经被作者于2019/10/30 14:22:01编辑过]