Foxtable(狐表)用户栏目专家坐堂 → [求助]父节点的统计不能执行


  共有10737人关注过本帖树形打印复制链接

主题:[求助]父节点的统计不能执行

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]父节点的统计不能执行  发帖心情 Post By: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



以下只是一个示例,如果叶节点的数据没有来源,是可以执行统计的。
但如果叶节点的数据有其它的来源,好象执行就有点问题。
请高手指教。

虽然从理论上说,可以通过
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目198.table

统计来执行,不过这是一个示例,我希望在界面上就能即输即得结果,方便使用。


[此贴子已经被作者于2012-8-6 9:18:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/6 9:18:00 [只看该作者]

全部用关联和表达式,加一个关联,这样本部门用的,下级部门用的,本部门+加下级部门(合计)的,统统可以统计出来。

以金额为例:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目198.table


 回到顶部
帅哥哟,离线,有人找我吗?
小猪鑫鑫
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/8/6 9:39:00 [只看该作者]

学习,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2243 积分:18477 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/8/6 22:03:00 [只看该作者]

调试成功,非常感谢.

 回到顶部