Foxtable(狐表)用户栏目专家坐堂 → [求助] 目录树不能全部显示


  共有1801人关注过本帖树形打印复制链接

主题:[求助] 目录树不能全部显示

帅哥哟,离线,有人找我吗?
317617216
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
[求助] 目录树不能全部显示  发帖心情 Post By:2016/2/3 18:41:00 [只看该作者]

[求助] 目录树不能全部显示



此主题相关图片如下:1.png
按此在新窗口浏览图片


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:项目1.foxdb



1.5.9以下的
1.5.10
1.5.11
请教为什么显示不了呢


代码如下:

窗口与控件事件

 

目录窗口_AfterLoad

 

'(打开窗口自动生成,如是按钮Click事件则需点击按钮)

' 点击按钮生成目录树.【递归:通过母序号与序号】

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim nd As WinForm.TreeNode

Dim dt As DataTable = DataTables("q")

tr.StopRedraw()

tr.Nodes.Clear

tr.Nodes.Add("全部")

For Each dr As DataRow In dt.datarows

    If dr.IsNull("母序号") Then

        nd = tr.Nodes.Add(dr("序号"),dr("序号") & dr("标题"))

        Functions.Execute("AddChildren",nd,dt)

    End If

Next

tr.ResumeRedraw()

 

目录窗口_Button1_Click

 

' 点击按钮生成目录树.【递归:通过母序号与序号】

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim nd As WinForm.TreeNode

Dim dt As DataTable = DataTables("q")

tr.StopRedraw()

tr.Nodes.Clear

tr.Nodes.Add("全部")

For Each dr As DataRow In dt.datarows

    If dr.IsNull("母序号") Then

        nd = tr.Nodes.Add(dr("序号"),dr("标题"))

        Functions.Execute("AddChildren",nd,dt)

    End If

Next

tr.ResumeRedraw()

 

目录窗口_TreeView1_NodeMouseDoubleClick

 

' 点击 目录 后 生成 目录树表,双击 节点 后 展开

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

Dim key As String = e.Node.Name

Dim ids As String

If key = "全部" Then

    Tables("q").Filter = ""

Else

    For Each nd As WinForm.TreeNode In trv.AllNodes

        Dim pd As WinForm.TreeNode = nd

        Do

            If pd.Name = key Then

                If ids > "" Then

                    ids= ids &  ","

                End If

                ids = ids & "'" & nd.name & "'"

                Exit Do

            Else

                pd = pd.ParentNode

                If pd Is Nothing Then

                    Exit Do

                End If

            End If

        Loop

    Next

    Tables("q").Filter = "序号 In (" & ids & ")"

End If

 

自定义函数

 

AddChildren

 

'http://www.foxtable.com/help/topics/2502.htm

Dim nd As WinForm.TreeNode = args(0)

Dim dt As DataTable = args(1)

For Each dr As DataRow In dt.Select("","序号")

    Dim km As String = dr("序号")

    If km.StartsWith(nd.Name) AndAlso km.Length = nd.Name.Length + 2 Then

        Dim cd As Winform.TreeNode = nd.Nodes.Add(km,km & " " & dr("标题"))

        Functions.Execute("AddChildren",cd,dt)

    End If

Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 19:47:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
317617216
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:1928 威望:0 精华:0 注册:2014/7/11 12:44:00
  发帖心情 Post By:2016/2/3 20:35:00 [只看该作者]

以下是引用大红袍在2016/2/3 19:47:00的发言:
 下载信息  [文件大小:320.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:项目1.foxdb


谢谢大红袍大师


 回到顶部