楼上狐神厉害,再分享一下狐爸曾经帮助过我的代码:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
For Each nd As WinForm.TreeNode In e.node.Nodes '同步子节点选中状态
nd.Checked = e.Node.Checked
Next
If e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
e.node.ParentNode.Checked = False
End If
For Each nd As WinForm.TreeNode In trv.AllNodes
If nd.Level > 0 AndAlso nd.ParentNode.Checked Then '如果父节点选中
Continue For '跳过此节点,处理下一结点
End If
If nd.Checked Then
If flt > "" Then
flt = flt & " Or " '注意用or而不是And
End If
If nd.Level = 0 Then '注意下面的条件都要用括号括起来
flt = flt & "(审核 = " & nd.Text & ")"
ElseIf nd.Level = 1 Then '注意下面的条件都要用括号括起来
flt = flt & "(审核 = " & nd.ParentNode.Text & " And 客户 = '" & nd.text & "')"
Else
flt = flt & "(审核 = " & nd.ParentNode.ParentNode.Text & " And 客户 = '" & nd.ParentNode.text & "' And 款号 = '" & nd.Text & "')"
End If
End If
Next
Tables("订单标准").Filter = flt