以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据编码生成目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146773)

--  作者:15666282205
--  发布时间:2020/3/2 10:59:00
--  根据编码生成目录树
老师,商品编码是这样:1202003020101,其中1代表工段,后面是日期,0101代表班组等。怎样设计一个目录树,一级是工段,二级是日期,往下依次论推。
--  作者:有点蓝
--  发布时间: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
--  发布时间:2020/3/3 13:07:00
--  目录树编码不是固定的
老师,您的代码首先赋值一个固定编码,实际上编码是很多的,运行时只出现了这一个编码。编码在“商品编码”列,应该让代码自己取值,生成目录树。
--  作者:有点蓝
--  发布时间:2020/3/3 13:42:00
--  
只是做个例子,自己改为遍历所有行取编码值不就行了
--  作者:15666282205
--  发布时间:2020/3/4 8:20:00
--  
老师,遍历和动态编码我还不熟练,只是复制粘贴,用的少。还请您完善一下,谢谢哦
--  作者:有点蓝
--  发布时间: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