以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何在筛选树中实现多种条件筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54392)

--  作者:2014年4月22日
--  发布时间:2014/7/27 13:22:00
--  [求助]如何在筛选树中实现多种条件筛选
图片点击可在新窗口打开查看图片点击可在新窗口打开查看

求高手指导!如何实现以下筛选树效果,自动生成多种条件筛选:

-筛选条件
-按产品
产品1
产品2
产品3
-按客户
客户1
客户2
客户3
-按月份
1月
2月
3月
[此贴子已经被作者于2014-7-27 13:22:28编辑过]

--  作者:有点甜
--  发布时间:2014/7/27 14:11:00
--  

 筛选树和筛选代码都要你自己去做。

 

 先参考 http://www.foxtable.com/help/topics/0917.htm

 


--  作者:utcxray
--  发布时间:2014/7/28 12:38:00
--  

Dim mls As String() = {"分类","分类1","种类"}  \'指定生成目录树的各列

Dim kh As String() = {"\'","\'","\'"}  \'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号

Dim cs As WinForm.TreeView = e.Sender

Dim sx As String

Dim jd As WinForm.TreeNode

For Each jd In e.node.allNodes \'清除子节点的选中标记

    jd.Checked = False

Next

jd = e.Node.ParentNode

Do While jd IsNot Nothing \'清除父节点的选中标记

    jd.Checked = False

    jd = jd.ParentNode

Loop

For Each jd In cs.AllNodes

    If jd.Checked  Then

        Dim xjd() As String = jd.FullPath.Split("\\")

        Dim val As String = ""

        For i As Integer = 0 To xjd.length - 1

            If val > "" Then

                val = val & " And "

            End If

            val = val & mls(i) & " = " & kh(i) & xjd(i) & kh(i)

        Next

        If sx > "" Then

            sx = sx & " Or (" & val & ")"

        Else

            sx = val

        End If

    End If

Next

Tables("供应商").Filter  = sx


e.Form.Controls("TreeView1").BuildTree("供应商", "分类|分类1|种类")