以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多层筛选,如何实现逐层取消?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73550)

--  作者:bigeng
--  发布时间:2015/8/21 11:01:00
--  [求助]多层筛选,如何实现逐层取消?
大红袍老师,如果进行了多层筛选,如何实现逐层取消呢,而不是点一下全部取消掉?
--  作者:bigeng
--  发布时间:2015/8/21 11:15:00
--  
大红袍老师,我提的这个太简单了吗?有没有相关的例子?


--  作者:bigeng
--  发布时间:2015/8/21 11:26:00
--  
可能我没有说明白,比如说针对当前表:第一步按日期筛选,第二步,再按客户筛选,第三步,再按商品筛选;单击取消筛选,退回到第二步筛选状态,再单击取消筛选,退回到第一步筛选状态。


--  作者:大红袍
--  发布时间:2015/8/21 11:35:00
--  

用一个集合记录搜有筛选条件。

 

AfterOpenProject事件

 

vars("条件") = new List(Of String)

vars("条件").Add(Tables("表A").Filter)

 

BeforeFilter事件

 

If vars("条件").Contains(e.filter) = False Then
    vars("条件").Add(e.Filter)
End If

 

想撤销,就写代码

 

If vars("条件").Count > 1 Then
    Tables("表A").Filter = vars("条件")(vars("条件").Count-2)
    vars("条件").RemoveAt(vars("条件").Count-1)
Else
    \'vars("条件").Clear
    \'vars("条件").add(Tables("表A").Filter)
End If


--  作者:bigeng
--  发布时间:2015/8/21 11:48:00
--  
谢谢大红袍老师,测试了,OK!