Foxtable(狐表)用户栏目专家坐堂 → 根据编码生成目录树


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

主题:根据编码生成目录树

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


加好友 发短信
等级:一尾狐 帖子:495 积分:3918 威望:0 精华:0 注册:2019/1/13 10:12:00
根据编码生成目录树  发帖心情 Post By:2020/3/2 10:59:00 [只看该作者]

老师,商品编码是这样:1202003020101,其中1代表工段,后面是日期,0101代表班组等。怎样设计一个目录树,一级是工段,二级是日期,往下依次论推。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/2 11:33:00 [只看该作者]

比如:

Dim s As String = "1202003020101"
Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
Dim s1 As String = s.SubString(0,1)
Dim s2 As String = s.SubString(1,8)
Dim s3 As String = s.SubString(9)
Dim n As WinForm.TreeNode

If  tv.Nodes.Contains(s1) Then
    n = tv.Nodes(s1)
Else
    n = tv.Nodes.Add(s1,s1)
End If
If  n.Nodes.Contains(s2)  Then
    n = n.Nodes(s2)
Else
    n = n.Nodes.Add(s2,s2)
End If

If  n.Nodes.Contains(s3) = False  Then
    n = n.Nodes.Add(s3,s3)
End If

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


加好友 发短信
等级:一尾狐 帖子:495 积分:3918 威望:0 精华:0 注册:2019/1/13 10:12:00
目录树编码不是固定的  发帖心情 Post By:2020/3/3 13:07:00 [只看该作者]

老师,您的代码首先赋值一个固定编码,实际上编码是很多的,运行时只出现了这一个编码。编码在“商品编码”列,应该让代码自己取值,生成目录树。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/3 13:42:00 [只看该作者]

只是做个例子,自己改为遍历所有行取编码值不就行了

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


加好友 发短信
等级:一尾狐 帖子:495 积分:3918 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/4 8:20:00 [只看该作者]

老师,遍历和动态编码我还不熟练,只是复制粘贴,用的少。还请您完善一下,谢谢哦

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/4 8:31:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/0419.htm

For Each dr As DataRow In DataTables("订单").DataRows
Dim s As String = dr("编码")
Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
Dim s1 As String = s.SubString(0,1)
Dim s2 As String = s.SubString(1,8)
Dim s3 As String = s.SubString(9)
Dim n As WinForm.TreeNode

If  tv.Nodes.Contains(s1) Then
    n = tv.Nodes(s1)
Else
    n = tv.Nodes.Add(s1,s1)
End If
If  n.Nodes.Contains(s2)  Then
    n = n.Nodes(s2)
Else
    n = n.Nodes.Add(s2,s2)
End If

If  n.Nodes.Contains(s3) = False  Then
    n = n.Nodes.Add(s3,s3)
End If
Next

 回到顶部