Foxtable(狐表)用户栏目专家坐堂 → [求助]如何按列内容生成目录树?


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

主题:[求助]如何按列内容生成目录树?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/23 23:02:00 [显示全部帖子]

遍历行,再遍历单元格.split("\") 后,  用 .Nodes.Add 应该可以完成......    猜测的~  

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/24 0:39:00 [显示全部帖子]

这样不知满足您:
Dim tr As WinForm.TreeView = Forms("mls").Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim fs as String
tr.Nodes.Clear 
For Each dr as DataRow in datatables("表名").Select("","类别")
    If dr("类别") <> "" Then
        nd = Tr.Nodes.Add("Root1",dr("类别").split("\")(0))
        fs = dr("类别").split("-:special:1:-).length
        for n as integer = 1 to fs-1
            nd.Nodes.Add("Sub" & n,dr("类别").split("-:special:1:-)(n))
        next
    End If
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:如何按列内容生成目录树.rar


不如狐爸的强!~
[此贴子已经被作者于2010-3-24 0:59:11编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/24 20:04:00 [显示全部帖子]

在狐爸的例子中发现一个问题:  有重复行时》》》 报错了~~     怎么排除重复行呢? 

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/24 23:10:00 [显示全部帖子]

C版 :  增加这样两条记录目录树没有显示:??: 



图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-3-24 23:50:43编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/24 23:34:00 [显示全部帖子]

加上这样两条也会报错:

其他应付款\老六
其他应付款\老六六


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/25 0:34:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-3-25 0:02:00的发言:
论坛屏蔽,下面的“分隔符”三字用"\"代替:

Dim nd As WinForm.TreeNode
Dim Names As List(Of String) = DataTables("表A").GetUniqueValues("类别 Is not Null", "类别")
For Each Name As String In Names
    Dim Path As String = Name
    Dim Parts() As String = Path.Split("-:special:1:-)
    Dim Start As Integer
    If nd IsNot Nothing Then
        Do
            If Path.StartsWith(nd.FullPath  & "分隔符" ) Then
                Start = nd.Level + 1
                nd = nd.Nodes.Add(Parts(Start),Parts(start))
                Start = nd.Level + 1
                Exit do
            Else
                nd = nd.ParentNode
                If nd Is Nothing Then
                    Exit do
                End If
            End If
        Loop
    End If
    If nd Is Nothing Then
        nd = Forms("窗口1").Controls("TreeView1").Nodes.Add(Parts(0),Parts(0))
        start = 1
    End If
    For i As Integer = Start To Parts.Length - 1
        nd = nd.Nodes.Add(Parts(i),Parts(i))
    Next
Next

[此贴子已经被作者于2010-3-25 0:09:52编辑过]

您真的强大啊~     ok

另外: GetUniqueValues 如能像 GetComboListString 按指定列排序就完美了  ^_^   ...要不遗憾之````


 回到顶部