以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多选筛选树请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97188)

--  作者:fox-man
--  发布时间:2017/3/7 17:15:00
--  多选筛选树请教
从casestudy下打开多选筛选树;案例中复选框打勾会自动筛选出对应产品和客户明细,如果所有父子节点复选框都不打勾,则会显示所有数据明细.
那么,如果所有父子复选框都不打勾,筛选显示为空记录,怎么实现啊?
--  作者:fox-man
--  发布时间:2017/3/7 17:29:00
--  
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态
    nd.Checked = False
    flt ="( 产品 = \'\')"
Next
If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态
    e.node.ParentNode.Checked = False
    flt ="( 产品 = \'\')"
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        If flt > "" Then
            flt = flt & " Or "  \'注意用or而不是And
        Else
        End If
        If nd.Level = 0 Then \'注意下面的条件都要用括号括起来
            flt = flt & "( 产品 = \'" & nd.Text & "\')"
        Else
            flt = flt & "( 产品 = \'" & nd.ParentNode.Text & "\' And 客户 = \'" & nd.Text & "\')"
        End If
    End If
Next
Tables("订单").Filter = flt

已实现.