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 & "')" Else flt = flt & "( 入职部门 = '" & nd.ParentNode.Text & "' And 姓名 = '" & nd.Text & "')" End If End If Next e.Form.controls("table1").Table.Filter = flt e.Form.controls("table2").Table.Filter = flt e.Form.controls("table3").Table.Filter = flt
|