以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于保存目录树节点到数据表的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=63978)

--  作者:able
--  发布时间:2015/2/2 21:02:00
--  关于保存目录树节点到数据表的问题
关于保存目录树节点到数据表的问题

项目内有一个BOM 表.有一个名为:BOM的窗口/

增加节点,增加子节点,删除节点,都是正常的,
而保存按钮;它的代码:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
DataTables("Cpinfo").DataRows.Clear --------------------------------不明白这句代码是做什么用,
For Each nd As WinForm.TreeNode In trv.allNodes
     Dim dr As DataRow = DataTables("BOM").Addnew()
    dr("级码") = nd.fullname.replace("\\",".")
    dr("产品名称") = nd.Text        --------------------------------------蓝色的代码有问题,保存节点名称到数据表,不应该是在循环内.请高手帮忙修改一下
Next
DataTables("BOM").Save()

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom.foxdb



--  作者:有点甜
--  发布时间:2015/2/2 21:23:00
--  
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
DataTables("Bom").DataRows.Clear
For Each nd As WinForm.TreeNode In trv.allNodes
     Dim dr As DataRow = DataTables("BOM").Addnew()
    dr("级码") = nd.fullname.replace("\\",".")
    dr("产品名称") = nd.Text
Next
DataTables("BOM").Save()

--  作者:able
--  发布时间:2015/2/2 23:06:00
--  
谢谢有点甜;
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
DataTables("Bom").DataRows.Clear
For Each nd As WinForm.TreeNode In trv.allNodes
     Dim dr As DataRow = DataTables("BOM").Addnew()
    dr("级码") = nd.fullname.replace("\\",".")
    dr("产品名称") = nd.Text
Next
DataTables("BOM").Save()

代码还是有一个问题,
就是当执行这个代码后,数据表内的:规格型号 和计量单位 列的内容全部没有了.这是什么情况呢.


--  作者:有点甜
--  发布时间:2015/2/3 0:02:00
--  

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
DataTables("BOM").Save
Dim max As Integer = DataTables("BOM").Compute("max(_Identify)")
For Each nd As WinForm.TreeNode In trv.allNodes
    Dim dr As DataRow = DataTables("BOM").Addnew()
    dr("级码") = nd.fullname.replace("\\",".")
    dr("产品名称") = nd.Text
    If nd.DataRow IsNot Nothing Then
        dr("产品代码") = nd.DataRow("产品代码")
        dr("规格型号") = nd.DataRow("规格型号")
    End If
Next
DataTables("BOM").Save
DataTables("BOM").DeleteFor("_Identify <= " & max)
DataTables("BOM").Save()

trv.GenerateTree("BOM","级码","产品名称", ".")


--  作者:able
--  发布时间:2015/2/3 0:27:00
--  
这样一来,没有保存节点数据到表里了
--  作者:有点甜
--  发布时间:2015/2/3 8:46:00
--  
  回复5楼,肯定有保存啊,测试没有问题。
[此贴子已经被作者于2015-2-3 8:46:20编辑过]