以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多选加载问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29668)

--  作者:lsfdf
--  发布时间:2013/3/11 14:41:00
--  多选加载问题
改了个多选加载,加载时没问题,但取消全部节点时,加载了全部内容,数据有点多,我想不加载任何内容,该如何改呢
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
        Select Case e.Node.Level
            Case 0
                flt = flt & "( 统计年度 = \'" & nd.Text & "\')"
            Case 1
                flt = flt & "( 统计年度 = \'" & nd.ParentNode.Text & "\' And 统计月份 = \'" & nd.Text & "\')"
            Case 2
                flt = flt & "( 统计年度 = \'" & nd.ParentNode.ParentNode.Text & "\' And 统计月份 = \'" & nd.ParentNode.Text & "\' and 通知日期 = # " & nd.Text & " #)"
        End Select
    End If
Next
DataTables("销售订单").LoadFilter = flt
DataTables("销售订单").Load()
DataTables("明细").Load()

--  作者:狐狸爸爸
--  发布时间:2013/3/11 15:56:00
--  
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
        Select Case e.Node.Level
            Case 0
                flt = flt & "( 统计年度 = \'" & nd.Text & "\')"
            Case 1
                flt = flt & "( 统计年度 = \'" & nd.ParentNode.Text & "\' And 统计月份 = \'" & nd.Text & "\')"
            Case 2
                flt = flt & "( 统计年度 = \'" & nd.ParentNode.ParentNode.Text & "\' And 统计月份 = \'" & nd.ParentNode.Text & "\' and 通知日期 = # " & nd.Text & " #)"
        End Select
    End If
Next
If flt = "" Then
   flt = "[_Identify] Is Null"
End If
DataTables("销售订单").LoadFilter = flt
DataTables("销售订单").Load()
DataTables("明细").Load()