以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何按月份汇总数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43256)

--  作者:tj-pacer
--  发布时间: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
--  发布时间:2013/12/3 11:45:00
--  
兄弟 汇总表不是这样做的,建议看看帮助
--  作者:Bin
--  发布时间:2013/12/3 11:46:00
--  
http://www.foxtable.com/help/topics/00144.htm

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

--  作者:tj-pacer
--  发布时间:2013/12/3 12:47:00
--  
以下是引用Bin在2013-12-3 11:46:00的发言:
http://www.foxtable.com/help/topics/00144.htm

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

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


--  作者:Bin
--  发布时间:2013/12/3 14:20:00
--  
上例子,说清楚需求, 否则如何帮你写.
--  作者:tj-pacer
--  发布时间:2013/12/3 20:01: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编辑过]

--  作者:tj-pacer
--  发布时间: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.