Foxtable(狐表)用户栏目专家坐堂 → 怎么才能汇总选定数据


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

主题:怎么才能汇总选定数据

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


加好友 发短信
等级:五尾狐 帖子:1062 积分:9781 威望:0 精华:0 注册:2012/3/13 5:23:00
怎么才能汇总选定数据  发帖心情 Post By:2012/10/28 18:15:00 [只看该作者]

如图

发货单 表中的 【已结算】列 = 下面 子表中  所有满足 【结算】列=ture 条件 的【小计】列的总和。

 

这个用表达公式 可以实现么?

或者用代码应该怎么写?

请各位前辈指点。 


图片点击可在新窗口打开查看此主题相关图片如下:??.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-10-28 18:16:09编辑过]

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


加好友 发短信
等级:三尾狐 帖子:623 积分:3897 威望:0 精华:0 注册:2011/8/3 22:13:00
  发帖心情 Post By:2012/10/28 18:26:00 [只看该作者]

必须用代码.

 回到顶部
帅哥,在线噢!
y2287958
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2012/10/28 20:56:00 [只看该作者]

不一定非得用代码的
用表达式也可以
请看说明书的现成例子

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/10/28 20:58:00 [只看该作者]

公斤数录入dls表,DataColChanged事件代码

 

If e.DataCol.name = "结算"
    Dim dr As DataRow = e.DataRow.GetParentrow("发货单")
    dr("已结算") = e.DataTable.Compute("sum(小计)","结算 = true")
End If


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


加好友 发短信
等级:五尾狐 帖子:1062 积分:9781 威望:0 精华:0 注册:2012/3/13 5:23:00
  发帖心情 Post By:2012/10/28 22:42:00 [只看该作者]

图片点击可在新窗口打开查看非常感谢

 但是有个问题, 发货单表里的数据比实际数据要多出很多。是什么原因?

 

 感觉是在累计子表里的所有数据,而不是 关联行的数据。改怎么改呢?

 

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

 

 

代码如下

 

公斤数录入dls表,DataColChanged事件代码

If e.DataCol.name = "结算"
Dim dr As DataRow = e.DataRow.GetParentrow("发货单")
dr("已结算") = e.DataTable.Compute("sum(小计)","结算 = true")
End If

 

这个代码是统计关联表里的所有数据, 而不是相关行的数据。有没有办法只统计相关行的数据呢?

[此贴子已经被作者于2012-10-30 5:46:09编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/28 23:39:00 [只看该作者]

 改成这样,加一个条件。

If e.DataCol.name = "结算"
    Dim dr As DataRow = e.DataRow.GetParentrow("发货单")
    dr("已结算") = e.DataTable.Compute("sum(小计)","结算 = true And 发货单号 = '" & e.DataRow("发货单号") & "'")
End If


 回到顶部