以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何将表C中的某一列数据按月汇总到表A中的某一列中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100387)

--  作者:wangj6666
--  发布时间:2017/5/10 17:09:00
--  如何将表C中的某一列数据按月汇总到表A中的某一列中

各位专家:您们好!

       我今天在编辑过程中,想将表C中按天记录的某一列的数据自动按月汇总后,将其月汇总的该数据自动填入表A中的对应月份的单元格中。请问有办法实现吗?请指明方法!谢谢!


--  作者:有点蓝
--  发布时间:2017/5/10 17:27:00
--  
参考:http://www.foxtable.com/webhelp/scr/1472.htm
--  作者:wangj6666
--  发布时间:2017/5/11 12:35:00
--  

您好!我参照了您给的例子,但是我的统计没有像例子中的产品对应关系,我只有统计年和统计月,而明细表C中是年月日的日期,所以我还是没有搞定。

如我想要将表C中如附件1所有材料的重量汇总后填入到表A中如附件2中2017年5月的本月已配出材料总量的单元格中。请帮忙解决!谢谢!


--  作者:wangj6666
--  发布时间:2017/5/11 12:36:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:附件1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:附件2.png
图片点击可在新窗口打开查看

--  作者:wyz20130512
--  发布时间:2017/5/11 12:54:00
--  
Dim g As New GroupTableBuilder("统计表",DataTables("表C"))
g.Groups.AddDef("配料日期",DateGroupEnum.Year,"结算年")
g.Groups.AddDef("配料日期",DateGroupEnum.Month,"结算月")
g.Totals.AddDef("材料重量","本月已配出材料总量Kg")
g.Build()
MainTable = Tables("统计表")

--  作者:wangj6666
--  发布时间:2017/5/11 12:59:00
--  
能不能在现有的数据表A中使用表达式列完成。
--  作者:wyz20130512
--  发布时间:2017/5/11 13:04:00
--  
不能,只能通过代码完成!

[此贴子已经被作者于2017/5/11 13:05:15编辑过]

--  作者:有点色
--  发布时间:2017/5/11 14:28:00
--  

表A的DataColChanged事件

 

If e.DataCol.Name = "结算年" OrElse e.DataCol.Name = "结算月" Then
    If e.DataRow.Isnull("结算年") OrElse e.DataRow.Isnull("结算月") Then
        e.DataRow("总重量") = Nothing
    Else
        Dim d As Date = new Date(e.DataRow("结算年"), e.DataRow("结算月"), 1)
        e.DataRow("总重量") = DataTables("表C").Compute("sum(材料重量)", "配料日期 >= #" & d & "# and 配料日期 < #" & d.AddMonths(1) & "#")
    End If
End If


--  作者:wangj6666
--  发布时间:2017/5/16 8:58:00
--  
用你这个方法搞定了。谢谢!