Foxtable(狐表)用户栏目专家坐堂 → 计算时程序自动关闭


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

主题:计算时程序自动关闭

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
计算时程序自动关闭  发帖心情 Post By:2012/8/4 14:23:00 [只看该作者]

我在做这个例子的时候,发现总自动关闭。

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

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


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/4 15:54:00 [只看该作者]

用户已被锁定

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


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

不是,我是要那个后勤科的数量=666+1158+9
然后行政部的数量=1\1\1的数量+1\1\2的数量+1\1\3的数量
依此类推

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

调试完成了.

 回到顶部