Foxtable(狐表)用户栏目专家坐堂 → 如何根据表的某列生成目录树的问题


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

主题:如何根据表的某列生成目录树的问题

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 15:47:00 [显示全部帖子]

这样的编码目录,包括空格缩进形式的,俺已经形成了套路:

 

 

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


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 16:08:00 [显示全部帖子]

你把科目库发上来,才好找其中的规律。

每一种编码,即使没规则,也是一种规则。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 16:21:00 [显示全部帖子]

我的单列目录树生成代码,可以说是通用的,编码有规则,就按规则来,没有规则就硬来,总之能生成。

编码规则,当然是规律性越强越好,不会有人故意为难自己,偏要搞的乱糟糟。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 16:26:00 [显示全部帖子]

楼主多传几个不同编码规则的表上来,研究研究。

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 16:36:00 [显示全部帖子]

9改成10。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 17:11:00 [显示全部帖子]

以下是引用有点甜在2014-8-11 16:55:00的发言:
 
 下载信息  [文件大小:27.3 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:编码规则.rar

递归是不错,可能楼主想要的是:任意一个科目编码表,并没有明确编码规则,先要自动判断规则,然后根据规则生成目录树。

如果能自动判断规则,然后再递归生成目录树,就完美无缺了。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 17:24:00 [显示全部帖子]

以下是引用有点甜在2014-8-11 17:16:00的发言:

 

判断规则是很简单的,遍历一次,取到不同的字符的个数,就能得到规则了。比如得到的字符个数分别是 3 5 8,那么规则就是3-2-3

对,原来不难。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 18:09:00 [显示全部帖子]

不需要递归,也不需要判断规则:

Dim tv As WinForm.TreeView = e.Form.Controls("TreeView科目表")
tv.StopRedraw
Dim t As Table = Tables("科目表")
t.Sort = "科目代码"
Dim lst As New List(Of Integer)
For Each r As Row In t.Rows
    If lst.Contains(r("科目代码").Length) = False Then
        lst.Add(r("科目代码").Length)
    End If
Next
lst.Sort
tv.Nodes.Clear
For Each r As Row In t.Rows
    If tv.Nodes.Contains(r("科目代码")) = False Then
        tv.Nodes.Add(r("科目代码"),r("科目名称"))
    End If
Next
For Each nd As WinForm.TreeNode In tv.AllNodes
    For i As Integer = 1 To lst.Count - 1
        If nd.Name.Length = lst(i) Then           
            For j As Integer = 0 To i - 1
                nd.MoveRight
            Next
        End If
    Next
Next
tv.CollapseAll
tv.ResumeRedraw

[此贴子已经被作者于2014-8-11 18:10:58编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/11 18:25:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单列空格及不定规则编码生成目录树.rar


 回到顶部