以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  各位老师,为什么默认全选,前面框框里没有显示?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103049)

--  作者:bootes29
--  发布时间:2017/6/29 17:08:00
--  各位老师,为什么默认全选,前面框框里没有显示?
e.Form.Controls("TreeView1").BuildTree("表c", "别人编号|我们编号")
Dim nd = e.Form.Controls("TreeView1").nodes.insert("所有", 0)
nd.checked = True
Tables("表c").Filter = ""


Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
If e.Node.Text = "所有" AndAlso e.node.Checked Then
    flt = ""
Else
    flt = "1=2"
    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.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
End If
Tables("表c").Filter = flt
-----------------------
有请老师百忙之中,指点下!
图片点击可在新窗口打开查看此主题相关图片如下:未标题-3.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/6/29 17:12:00
--  

你想全选?

 

Dim trv As WinForm.TreeView  = e.Form.Controls("TreeView1")
trv.BuildTree("表c", "别人编号|我们编号")
Dim nd As WinForm.TreeNode = trv.nodes.insert("所有", 0)
Tables("表c").Filter = ""
For Each nd In trv.AllNodes
    nd.Checked = True
Next

[此贴子已经被作者于2017/6/29 17:27:26编辑过]

--  作者:bootes29
--  发布时间:2017/6/29 17:22:00
--  
老师您这代码放哪里?afterload?
--  作者:有点色
--  发布时间:2017/6/29 17:23:00
--  
 是的,AfterLoad事件。
--  作者:bootes29
--  发布时间:2017/6/29 17:25:00
--  
trv.BuildTree("表c", "别人编号|我们编号")
这段报错

--  作者:有点色
--  发布时间:2017/6/29 17:27:00
--  
Dim trv As WinForm.TreeView  = e.Form.Controls("TreeView1")
trv.BuildTree("表c", "别人编号|我们编号")
Dim nd As WinForm.TreeNode = trv.nodes.insert("所有", 0)
Tables("表c").Filter = ""
For Each nd In trv.AllNodes
    nd.Checked = True
Next

--  作者:bootes29
--  发布时间:2017/6/29 17:31:00
--  
可以了 太牛了,多谢老师!
这两段语句一样的啊,为啥第一段 报错
第二段正常?

--  作者:有点色
--  发布时间:2017/6/29 17:33:00
--  
2楼的第一句代码写错了。后来改了。
--  作者:bootes29
--  发布时间:2017/6/29 17:49:00
--  
受教了,辛苦,辛苦