Foxtable(狐表)用户栏目专家坐堂 → 如何将表C中的某一列数据按月汇总到表A中的某一列中


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

主题:如何将表C中的某一列数据按月汇总到表A中的某一列中

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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
如何将表C中的某一列数据按月汇总到表A中的某一列中  发帖心情 Post By:2017/5/10 17:09:00 [只看该作者]

各位专家:您们好!

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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/10 17:27:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/11 12:35:00 [只看该作者]

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

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


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


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/11 12:36:00 [只看该作者]


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

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

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/11 12:59:00 [只看该作者]

能不能在现有的数据表A中使用表达式列完成。

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/5/11 13:04:00 [只看该作者]

不能,只能通过代码完成!

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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:238 积分:1943 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/16 8:58:00 [只看该作者]

用你这个方法搞定了。谢谢!

 回到顶部