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


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

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

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]递归目录树  发帖心情 Post By:2018/8/2 15:54:00 [只看该作者]

递归目录树,要实现目录树节点 编码名称在左边,编号规则(数字)在右边

内部函数修改后,有一些问题,求帮助

1、目录树三级节点不能筛选行

2、目录树三级节点没在二级节点下面

     04

     0401

     040101

 

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


图片点击可在新窗口打开查看此主题相关图片如下:问题.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)内部函数?Dim nd As WinFor...  发帖心情 Post By:2018/8/2 17:01:00 [只看该作者]

 

 文本控件,显示当前选择目录树节点,下面代码怎么修改呢?

Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
Dim kmf As String = dr("编码名称")
e.Form.Controls("TextBox1").Text = e.Node.FullName & kmf

1、显示全部路径
2、显示当前路径

[此贴子已经被作者于2018/8/2 17:02:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)全部路径?e.Form.Controls(...  发帖心情 Post By:2018/8/2 18:17:00 [只看该作者]

目录树的 二级、三级节点 名称后面的 编码规则(阿拉伯数字)只显示最后两位,代码怎么修改呢?

 如下图

方案0401 显示为 方案01

大班组040101  显示为 大班组 01

小班040102     显示为  小班    02


图片点击可在新窗口打开查看此主题相关图片如下:gg.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/8/2 18:42:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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))


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)1、获取到e.node.datarow,然后获取各...  发帖心情 Post By:2018/8/2 21:37:00 [只看该作者]

师傅出手帮帮吧,这个我搞不定

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

[此贴子已经被作者于2018/8/2 21:38:45编辑过]

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


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

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


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)[upload=foxdb,递归目录树名称左编号...  发帖心情 Post By:2018/8/3 14:06:00 [只看该作者]

 师傅,其实想要的是:在目录树里面只显示后面2为数字
不是在文本框,可以吗?
 

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
总数 12 1 2 下一页