以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]计算目录树各节点数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77582)

--  作者:ydhcz2009
--  发布时间:2015/11/20 21:43:00
--  [求助]计算目录树各节点数据

我想统计目录树的各层级节点的综合数据。就是综合下级节点的和。最下级的节点是零件,是有重量的,零件以上的节点就是零件组合起来的,也就是各子节点的重量的和。能否用递归函数进行计算?求各位指点。我自己写的递归函数总是出错。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树统计各节点数据.foxdb

[此贴子已经被作者于2015/11/20 21:49:01编辑过]

--  作者:Hyphen
--  发布时间:2015/11/21 10:03:00
--  

mlsjs函数

 

Dim ys As String = Args(0)
Dim drow As DataRow = Args(1)
Dim zl As Double = 0
Dim dr As DataRow
Dim drs As List(of DataRow)
drs = drow.DataTable.Select("[隶属] = \'" & ys & "\'")
If drs.Count = 0 Then
    If drow.IsNull("单重") = False Then
        zl = drow("单重") * drow("隶属数量")
    End If
Else
    For Each dr In drs
        zl += Functions.Execute("mlsjs", drow("元素"),dr)
    Next
End If

Return zl

 

 

按钮事件

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.CreateTree("表A","绝对路径")

For Each nd As WinForm.TreeNode In tr.AllNodes
    Dim zl = Functions.Execute("mlsjs",nd.DataRow("元素") ,nd.DataRow)
    nd.Text = nd.DataRow("复合名称") & "数量(" & nd.DataRow("隶属数量") & ")" & "重量(" & zl & ")"
Next
tr.ExpandAll


--  作者:ydhcz2009
--  发布时间:2015/11/21 10:14:00
--  
谢谢。算是算出来了。不过数据是错的。但至少不会死循环了。我再学习一下。谢谢了