以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树导出到表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79828)

--  作者:实话实说
--  发布时间:2016/1/10 10:17:00
--  目录树导出到表

窗口1的目录树会导出,窗口2的目录树搞不定,请求帮助

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树与表转换.zip


--  作者:大红袍
--  发布时间:2016/1/10 11:04:00
--  

\'删除所有行
DataTables("表B").DataRows.Clear
DataTables("表B").ResumeRedraw
DataTables("表B").StopRedraw
Dim trv As WinForm.TreeView = e.form.Controls("TreeView2")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.nodes.Count = 0 Then
        Dim ary() As String = nd.FullPath.split(new Char() {"\\", " "})
        If ary.length = 6 Then
            Dim ndr As DataRow = DataTables("表B").addnew
            ndr("分类代码") = ary(0)
            ndr("产品分类") = ary(1)
            ndr("型号代码") = ary(2)
            ndr("型号") = ary(3)
            ndr("规格") = ary(4)
            ndr("产品代码") = ary(5)
        End If
    End If
Next

DataTables("表B").ResumeRedraw


--  作者:实话实说
--  发布时间:2016/1/10 12:43:00
--  
OK,谢谢
--  作者:实话实说
--  发布时间:2020/2/4 11:11:00
--  
图3
图片点击可在新窗口打开查看此主题相关图片如下:snap3.jpg
图片点击可在新窗口打开查看
图2
图片点击可在新窗口打开查看此主题相关图片如下:snap2.jpg
图片点击可在新窗口打开查看
图1
图片点击可在新窗口打开查看此主题相关图片如下:snap4.jpg
图片点击可在新窗口打开查看


图1是目录树结构
图2是想要导出的结果
图3是下面代码导出的结果
问题在型号规格列
DataTables("表C").DataRows.Clear
DataTables("表C").ResumeRedraw
DataTables("表C").StopRedraw
Dim trv As WinForm.TreeView = e.form.Controls("材料目录")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.nodes.Count = 0 Then
        Dim ary() As String = nd.FullPath.split(new Char() {"\\", " "})
        If ary.length = 7 Then
            Dim ndr As DataRow = DataTables("表C").addnew
ndr("分类代码") = ary(0)
ndr("材料分类") = ary(1)
ndr("名称代码") = ary(2)
ndr("材料名称") = ary(3)
ndr("型规代码") = ary(4)
ndr("型号规格") = ary(5)
ndr("材料代码") = ary(6)      
        End If
    End If
Next
DataTables("表C").ResumeRedraw
Tables("表C").OpenView("1")

DataTables("表C").DataCols("型规代码").RaiseDataColChanged()


--  作者:有点蓝
--  发布时间:2020/2/4 11:23:00
--  
截图的列名和代码的列名对不上号,看看是不是这样

ndr("分类代码") = ary(0)
ndr("材料分类") = ary(1)
ndr("名称代码") = ary(2)
ndr("材料名称") = ary(3)
ndr("型号规格") = ary(5) & " " & ary(6) 
ndr("材料代码") = ary(4) 

--  作者:实话实说
--  发布时间:2020/2/4 12:13:00
--  

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

耐火和绝缘目录树结构不一样

--  作者:实话实说
--  发布时间:2020/2/4 13:05:00
--  
结果耐火节点可以导出,绝缘节点不能导出
--  作者:有点蓝
--  发布时间:2020/2/4 13:38:00
--  
分开2段代码判断一下,如果是绝缘,判断ary.length = 6

 If ary.length = 7 Then

--  作者:实话实说
--  发布时间:2020/2/4 14:07:00
--  
OK谢谢