以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]文本框内容转目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119543)

--  作者:天一生水
--  发布时间:2018/5/26 18:08:00
--  [求助]文本框内容转目录树
如图,文本框中的每一行文本,都是由“时间”、“文书”、“接收人”、“诉讼地位”四部分组成的,中间用逗号分隔;然后换行。
怎样将这多行文本转为目录树,比如目录树的节点层级就按照上述四部分的顺序。
谢谢!

图片点击可在新窗口打开查看此主题相关图片如下:image 11.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文本转目录树.table





--  作者:有点甜
--  发布时间:2018/5/27 16:09:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:文本转目录树.table


--  作者:天一生水
--  发布时间:2019/4/22 12:18:00
--  

老师好!

获取的4组数据,如果我只想生成3层目录树。根节点命名为是s(0),第2层命名为是s(1),第3层命名为是s(2)&  "(" &  s(3) &  ")" 。

如图所示,应该怎样修改?

谢谢!


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

 

DataFormat事件:

\'\'\'
Dim ary() As String = e.Text.split(";")
Dim trv As WinForm.TreeView = e.Form.controls("Treeview1")
If trv Is Nothing Then Return
trv.nodes.clear
For Each str As String In ary
    Dim s() As String = str.split(",")
    If s.length <> 4 Then Continue For
    Dim n1 As WinForm.TreeNode = Nothing
    Dim n2 As WinForm.TreeNode = Nothing
    Dim n3 As WinForm.TreeNode = Nothing
    Dim n4 As WinForm.TreeNode = Nothing
    For Each nd1 As WinForm.TreeNode In trv.Nodes
        If nd1.name = s(0).trim Then
            n1 = nd1
            For Each nd2 As WinForm.TreeNode In nd1.Nodes
                If nd2.name = s(1).trim Then
                    n2 = nd2
                    For Each nd3 As WinForm.TreeNode In nd2.Nodes
                        If nd3.name = s(2).trim Then
                            n3 = nd3
                            For Each nd4 As WinForm.TreeNode In nd3.Nodes
                                If nd4.name = s(3).trim Then
                                    n4 = nd4
                                End If
                            Next
                           
                        End If
                    Next
                End If
            Next
        End If
    Next
    If n1 Is Nothing Then
        n1 = trv.nodes.Add(s(0).trim)
    End If
    If n2 Is Nothing Then
        n2 = n1.nodes.Add(s(1).trim)
    End If
    If n3 Is Nothing Then
        n3 = n2.nodes.Add(s(2).trim)
    End If
    If n4 Is Nothing Then
        n4 = n3.nodes.Add(s(3).trim)
    End If
Next



--  作者:有点甜
--  发布时间:2019/4/22 12:43:00
--  
\'\'\'
Dim ary() As String = e.Text.split(";")
Dim trv As WinForm.TreeView = e.Form.controls("Treeview1")
If trv Is Nothing Then Return
trv.nodes.clear
For Each str As String In ary
    Dim s() As String = str.split(",")
    If s.length <> 4 Then Continue For
    Dim n1 As WinForm.TreeNode = Nothing
    Dim n2 As WinForm.TreeNode = Nothing
    Dim n3 As WinForm.TreeNode = Nothing
    Dim n4 As WinForm.TreeNode = Nothing
    For Each nd1 As WinForm.TreeNode In trv.Nodes
        If nd1.name = s(0).trim Then
            n1 = nd1
            For Each nd2 As WinForm.TreeNode In nd1.Nodes
                If nd2.name = s(1).trim Then
                    n2 = nd2
                    For Each nd3 As WinForm.TreeNode In nd2.Nodes
                        If nd3.name = s(2).trim Then
                            n3 = nd3                           
                        End If
                    Next
                End If
            Next
        End If
    Next
    If n1 Is Nothing Then
        n1 = trv.nodes.Add(s(0).trim)
    End If
    If n2 Is Nothing Then
        n2 = n1.nodes.Add(s(1).trim)
    End If
    If n3 Is Nothing Then
        n3 = n2.nodes.Add(s(2).trim, s(2).trim & "(" & s(3) & ")")
    End If
Next