以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]父节点的统计不能执行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22187) |
||||
-- 作者:chnfo -- 发布时间:2012/8/5 10:28:00 -- [求助]父节点的统计不能执行 现在公司有N个部门,有些部门可能还有小部门,而公司的物品分布在各个部门里面,需要计算公司、各个大小部门分别的物品总量、物品总额、以及物品的平均单价 基本约束是:物品总是登记在最末级的部门(或小部门)下。 已经完成的工作: (1)部门的物品登记之后,该部门的数量和金额可以自动汇总,并可以计算该部门的物品均价。 (2)部门的物品数据修改,该部门的数量和金额可以自动更新。 问题: 当我要计算小部门的上级,也就是非末级节点的数量和金额时,执行出错。 我分析原因出在“部门物品分布”的表的dataclochanged的第三步有问题,即 \'第3步,计算末级节点的金额\' For Each dr1 As DataRow In e.DataTable.DataRows Dim FlSumDetail As String = "WBSID = " & e.DataRow("_Identify") Dim FlSumSon As String ="FatherCode like \'" & dr1("code") & "\\*\'" Dim dr2 As DataRow = e.DataTable.Find(FlSumSon) If dr2 Is Nothing Then dr1("Istree") = True \'如果是末级节点,则其金额数据来源于子表的数据汇总 e.DataRow("V") = DataTables("WP").Compute("Sum(V)", FlSumDetail) e.DataRow("A") = DataTables("WP").Compute("Sum(A)", FlSumDetail) \'隐藏从表\' Tables("WP").Visible = False dr1("V") = e.DataTable.Compute("sum(V)",FlSumSon) ‘应当就是这一段有问题’ Else dr1("Istree") = False End If Next 但如果叶节点的数据有其它的来源,好象执行就有点问题。 请高手指教。 虽然从理论上说,可以通过
统计来执行,不过这是一个示例,我希望在界面上就能即输即得结果,方便使用。 [此贴子已经被作者于2012-8-6 9:18:09编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/8/6 9:18:00 -- 全部用关联和表达式,加一个关联,这样本部门用的,下级部门用的,本部门+加下级部门(合计)的,统统可以统计出来。 以金额为例:
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2012/8/6 9:39:00 -- 学习,谢谢 |
||||
-- 作者:chnfo -- 发布时间:2012/8/6 22:03:00 -- 调试成功,非常感谢. |