以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=70676)

--  作者:hbhb
--  发布时间:2015/6/26 11:05:00
--  请教
大师:好!
请问一个问题如何解决。
能否将一张表的数列以目录树的形式写进某表的一列(各级移动一个空字符)?

--  作者:大红袍
--  发布时间:2015/6/26 11:07:00
--  

 具体举例说明,看不懂你什么意思


--  作者:hbhb
--  发布时间:2015/6/26 11:33:00
--  
表c:
第一列    第二列
狐大师    有点甜
狐大师    大红袍
狐大师    有点酸
狐大师     lsy
狐大师    bin


通过表c的两列生成的目录树如下: 
狐大师
   有点甜
   大红袍
   有点酸
   lsy
   bin
通过代码写进了表a的一列,各级向后移动一空字符(样式如上)。
 
现在我问的是,不通过生成目录树,然后写代码写进表a的一列,而是直接由表c生成。

--  作者:大红袍
--  发布时间:2015/6/26 11:36:00
--  

 肯定要用一个生成目录树的过程,先生成树,再写入,是最简单的。


--  作者:hbhb
--  发布时间:2015/6/26 12:02:00
--  
不通过目录树控件的生成目录树的类对象是哪一个?
--  作者:大红袍
--  发布时间:2015/6/26 12:15:00
--  

 mark 非递归

 

 

[此贴子已经被作者于2015/6/26 12:16:01编辑过]

--  作者:大红袍
--  发布时间:2015/6/26 12:17:00
--  

Dim tb As DataTable = DataTables("表B")
Dim ta As DataTable = DataTables("表A")
tb.DataRows.Clear


Dim ta_cs As String = "第一列|第二列|第三列"

Dim nds(ta_cs.Length-1) As String

For Each arys As String() In ta.GetValues(ta_cs, "", ta_cs.Replace("|", ","))
    Dim flag As Boolean = False
    For i As Integer = 0 To arys.Length - 1
        If nds(i) <> arys(i) OrElse flag Then
            flag = True
            Dim ndr As DataRow = tb.AddNew
            ndr("第一列") = "".PadLeft(i * 5) & arys(i)
            nds(i) = arys(i)
        End If
    Next
Next

 


--  作者:hbhb
--  发布时间:2015/6/26 13:03:00
--  
大师:实实在在的看不懂?Dim nds(ta_cs.Length-1) As String?
--  作者:大红袍
--  发布时间:2015/6/26 14:04:00
--  

 要不你就递归去做。

 

 http://www.foxtable.com/help/topics/2416.htm