以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  计算时程序自动关闭  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22165)

--  作者:chnfo
--  发布时间:2012/8/4 14:23:00
--  计算时程序自动关闭
我在做这个例子的时候,发现总自动关闭。

本意是如果树节点是末级节点时,合计其明细的相关值。
如果树节点为非末级节点时,合计其直属子节点的相关值。

试了方法,不中,请高手指点。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目197.table


--  作者:chnfo
--  发布时间:2012/8/4 21:14:00
--  
不是,我是要那个后勤科的数量=666+1158+9
然后行政部的数量=1\\1\\1的数量+1\\1\\2的数量+1\\1\\3的数量
依此类推

--  作者:狐狸爸爸
--  发布时间:2012/8/6 8:25:00
--  

提问,你得明确告诉大家,你目的是什么,你做了些什么,现在卡在那里,否则大家不知道你要做什么,怎么帮你?

 

你要汇总,大概就是:

Dim val As Double = DataTables("WBS").compute("Sum(v)","FatherCode Like \'" & e.Node.Name & "\\*\' Or FatherCode = \'" & e.node.name & "\'")
Messagebox.show(val)

 


--  作者:chnfo
--  发布时间:2012/8/6 9:02:00
--  
那我把问题重新说说吧。

这是一个公司部门物品分布的情况。是希望在“部门物品分布”——以下称主表——的界面里,当选择具体部门后,在“部门物品分布.部门物品”——以下称子表里填写明细之后,在主表里可以自动更新具体部门的数量、金额,并计算这个部门的物品均价。

现在已经做完的工作:
(1)主表中的末级节点的数量和金额由子表中汇总得到,这个没有问题。
(2)子表的具体物品的数量和单价变化的时候,主表中末级节点的数量和金额自动更新。

问题:
(1)主表中的非末级节点的数量和金额,逐级汇总时,程序出错。
意思就是
1\\1\\1的数量=sum(1\\1\\1\\1,1\\1\\1\\2,1\\1\\1\\3)的数量
1\\1的数量=sum(1\\1\\1,1\\1\\2,1\\1\\3)的数量
1的数量=sum(1\\1)的数量

金额类同。




--  作者:chnfo
--  发布时间:2012/8/6 9:08:00
--  
我试了多次,应当就是“部门物品分布”的表的datacolChanged的代码出了问题

具体来说,就是这里

\'第4步,非末级节点的金额递归计算,这样不行.
\'For Each dr1 As DataRow In e.DataTable.DataRows
\'    Dim FlSumSon02 As String ="FatherCode  = \'" & dr1("code") & "\'"
\'    Dim dr2 As DataRow = e.DataTable.Find(FlSumSon02)
\'    If dr2 IsNot Nothing Then
\'        dr1("V") = e.DataTable.Compute("sum(V)",FlSumSon02)
\'        dr1("A") = e.DataTable.Compute("sum(A)",FlSumSon02)
\'    End If
\'Next

不太明白问题出在哪里。

--  作者:chnfo
--  发布时间:2012/8/6 22:04:00
--  
调试完成了.