以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]递归目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122816)

--  作者:湛江智
--  发布时间:2018/8/2 15:54:00
--  [求助]递归目录树

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

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

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

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

     04

     0401

     040101

 

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


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

--  作者:有点甜
--  发布时间: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


--  作者:湛江智
--  发布时间:2018/8/2 17:01:00
--  回复:(有点甜)内部函数?Dim nd As WinFor...
 

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

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编辑过]

--  作者:有点甜
--  发布时间: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


--  作者:湛江智
--  发布时间:2018/8/2 18:17:00
--  回复:(有点甜)全部路径?e.Form.Controls(...

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

 如下图

方案0401 显示为 方案01

大班组040101  显示为 大班组 01

小班040102     显示为  小班    02


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

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

--  作者:有点甜
--  发布时间:2018/8/2 19:06:00
--  

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

 

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


--  作者:湛江智
--  发布时间:2018/8/2 21:37:00
--  回复:(有点甜)1、获取到e.node.datarow,然后获取各...

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

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

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

--  作者:有点甜
--  发布时间:2018/8/2 22:07:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:递归目录树名称左编号右 (1).foxdb


--  作者:湛江智
--  发布时间:2018/8/3 14:06:00
--  回复:(有点甜)[upload=foxdb,递归目录树名称左编号...
 师傅,其实想要的是:在目录树里面只显示后面2为数字
不是在文本框,可以吗?
 

--  作者:有点甜
--  发布时间: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编辑过]