Foxtable(狐表)用户栏目专家坐堂 → 如何按月份汇总数据


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

主题:如何按月份汇总数据

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
如何按月份汇总数据  发帖心情 Post By:2013/12/3 11:40:00 [只看该作者]

有生产表,各列为“生产工单”,“生产日期”,“生产数量", 在生产汇总表中有”生产工单”“生产数量”“月份”列,请教如何按月份汇总

 

在生产表datacolChanged写代码:

Dim Amount As Double = e.DataTable.Compute("Sum(生产数量)","生产工单 = '" & e.DataRow("生产工单") & "'")
Dim dr As DataRow
dr = DataTables("生产汇总").Find("生产工单 = '" & e.DataRow("生产工单") & "'")
If dr IsNot Nothing Then
    dr("生产数量") = Amount
Else
    dr = DataTables("生产汇总").AddNew()
    dr("生产工单") = e.DataRow("生产工单")
End If

 

能汇总全部数据,但无法分月份,如何写代码将生产日期为同一月份的,将所属月份显示在生产汇总的“月份"列? 谢谢!


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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2013/12/3 11:45:00 [只看该作者]

兄弟 汇总表不是这样做的,建议看看帮助

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/3 11:46:00 [只看该作者]

http://www.foxtable.com/help/topics/00144.htm

设置汇总模式,点击查看代码,赋值下来即可.

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/12/3 12:47:00 [只看该作者]

以下是引用Bin在2013-12-3 11:46:00的发言:
http://www.foxtable.com/help/topics/00144.htm

设置汇总模式,点击查看代码,赋值下来即可.

谢谢!是我没表达清楚,不仅仅是汇总还要统计相同的定单,还要在其它的表统计很多的列,请按我的方案帮忙写一下代码,先谢了.


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/3 14:20:00 [只看该作者]

上例子,说清楚需求, 否则如何帮你写.

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/12/3 20:01:00 [只看该作者]

是我问题没说清吗?请其他高手帮忙!!!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/3 20:08:00 [只看该作者]

 是这个意思?

Dim d As Date = e.DataRow("生产日期")
d = new Date(d.Year, d.Month, 1)
Dim Amount As Double = e.DataTable.Compute("Sum(生产数量)","生产工单 = '" & e.DataRow("生产工单") & "' and 生产日期 >= #" & d & "# and 生产日期 < #" & d.AddMonths(1) & "#")
Dim dr As DataRow
dr = DataTables("生产汇总").Find("生产工单 = '" & e.DataRow("生产工单") & "'")
If dr IsNot Nothing Then
    dr("生产数量") = Amount
Else
    dr = DataTables("生产汇总").AddNew()
    dr("生产工单") = e.DataRow("生产工单")
End If
[此贴子已经被作者于2013-12-3 20:08:19编辑过]

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


加好友 发短信
等级:小狐 帖子:347 积分:2844 威望:0 精华:0 注册:2013/4/26 20:58:00
  发帖心情 Post By:2013/12/3 20:29:00 [只看该作者]

以下是引用有点甜在2013-12-3 20:08:00的发言:
 是这个意思?

Dim d As Date = e.DataRow("生产日期")
d = new Date(d.Year, d.Month, 1)
Dim Amount As Double = e.DataTable.Compute("Sum(生产数量)","生产工单 = '" & e.DataRow("生产工单") & "' and 生产日期 >= #" & d & "# and 生产日期 < #" & d.AddMonths(1) & "#")
Dim dr As DataRow
dr = DataTables("生产汇总").Find("生产工单 = '" & e.DataRow("生产工单") & "'")
If dr IsNot Nothing Then
    dr("生产数量") = Amount
Else
    dr = DataTables("生产汇总").AddNew()
    dr("生产工单") = e.DataRow("生产工单")
End If
[此贴子已经被作者于2013-12-3 20:08:19编辑过]
Hi Thank you so much. I cannot test the code due to the database file is in company server. I will test the code tomorrow. I believe it is right code. By the way, I want to say that you contribute a lot to the forum. Some "host of the forum" or "expert" need improve their attitude.   

 回到顶部