Foxtable(狐表)用户栏目专家坐堂 → [求助]递归目录树


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

主题:[求助]递归目录树

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 16:03:00 [显示全部帖子]

内部函数

 

Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim gz As String = args(2)
For Each dr As DataRow In dt.Select("","编码规则") '按代码顺序添加
    Dim km As String = dr("编码规则")
    Dim kmf As String = dr("编码名称")
    If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + val(gz(dr("编码级次")-1)) Then
        Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("编码规则"),kmf & " " &  dr("编码规则"))
        Functions.Execute("AddChildren",cd,dt,gz)
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 17:09:00 [显示全部帖子]

全部路径

 

e.Form.Controls("TextBox1").Text = e.Node.FullName

 

或者

 

e.Form.Controls("TextBox1").Text = e.Node.FullPath

 

当前节点

 

e.Form.Controls("TextBox1").Text = e.Node.Name '或者 text


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 19:06:00 [显示全部帖子]

1、获取到e.node.datarow,然后获取各列数据。

 

2、截取最后两位这样写 msgbox(right("0401", 2))


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/2 22:07:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:递归目录树名称左编号右 (1).foxdb


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/3 15:13:00 [显示全部帖子]

以下是引用湛江智在2018/8/3 14:06:00的发言:
 师傅,其实想要的是:在目录树里面只显示后面2为数字
不是在文本框,可以吗?
 

 

汗,这不是更简单?
 
Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim gz As String = args(2)
For Each dr As DataRow In dt.Select("","编码规则") '按代码顺序添加
    Dim km As String = dr("编码规则")
    Dim kmf As String = dr("编码名称")
    If km.StartsWith(nd.name) AndAlso km.Length = nd.Name.Length + val(gz(dr("编码级次")-1)) Then
        Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("编码规则"),kmf & " " &  right(dr("编码规则"), 2))
        Functions.Execute("AddChildren",cd,dt,gz)
    End If
Next

[此贴子已经被作者于2018/8/3 15:13:50编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/3 17:57:00 [显示全部帖子]

10楼代码不会影响筛选,请认真测试。

 

不会调试,请上传具体实例。


 回到顶部