以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]组合多个统计结果,问,要按日期的月份统计,应该怎么写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179976) |
-- 作者:fengwenliuyan -- 发布时间:2022/9/21 14:39:00 -- [求助]组合多个统计结果,问,要按日期的月份统计,应该怎么写? 组合多个统计结果,如何将按日期的月份,进行统计,帮助文件中的示例中是这样写的: (问,要按日期的月份统计,应该怎么写?) Dim bd1 As New
GroupTableBuilder("统计表1",DataTables("进货单")) Dim bd3 As New
GroupTableBuilder("统计表3",DataTables("退货单")) dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据 Tables("窗口1_Table1").DataSource = dt1
\'将统计结果绑定到Table |
-- 作者:有点蓝 -- 发布时间:2022/9/21 14:41:00 -- http://www.foxtable.com/webhelp/topics/3284.htm 示例二,统计不同月份的销售数量和金额 将下面的代码复制到命令窗口: Dim b As New GroupTableBuilder("统计表1",DataTables("订单")) |
-- 作者:fengwenliuyan -- 发布时间:2022/9/21 16:13:00 -- 以下是引用有点蓝在2022/9/21 14:41:00的发言:
http://www.foxtable.com/webhelp/topics/3284.htm 示例二,统计不同月份的销售数量和金额 将下面的代码复制到命令窗口: Dim b As New GroupTableBuilder("统计表1",DataTables("订单")) 改这一行吗? bd1.Groups.AddDef("型号","月份") \'根据型号分组? 但是提示错误,没有发现“型号”? |
-- 作者:有点蓝 -- 发布时间:2022/9/21 16:19:00 -- 有"型号"这个名称的列?是日期型列? |
-- 作者:fengwenliuyan -- 发布时间:2022/9/22 11:03:00 -- Dim bd1 As New GroupTableBuilder("统计表1", DataTables("入库表")) Dim dt1 As fxDataSource bd1.Groups.AddDef("入库日期", "入库月份") bd1.Groups.AddDef("品名") \'根据品名分组 bd1.Totals.AddDef("入库数量", "入库_数量") \'对数量进行统计 bd1.Totals.AddDef("入库金额", "入库_金额") \'对金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New GroupTableBuilder("统计表2", DataTables("出库表")) Dim dt2 As fxDataSource bd2.Groups.AddDef("领用日期", "领用月份") bd2.Groups.AddDef("品名") \'根据品名分组 bd2.Totals.AddDef("领用数量", "领用_数量") \'对数量进行统计 bd2.Totals.AddDef("领用金额", "领用_金额") \'对金额进行统计 dt2 = bd2.BuildDataSource() Dim bd3 As New GroupTableBuilder("统计表3", DataTables("库存表")) Dim dt3 As fxDataSource bd3.Groups.AddDef("品名") \'根据品名分组 bd3.Totals.AddDef("初始库存", "初始_库存") \'对数量进行统计 \'bd3.Totals.AddDef("金额", "退货_金额") \'对金额进行统计 dt3 = bd3.BuildDataSource() dt1.Combine("品名", dt2, "品名") \'将销售统计数据组合到进货统计数据 dt1.Combine("品名", dt3, "品名") \'将退货统计数据组合到进货统计数据 Tables("按月统计表窗口_按月统计表").DataSource = dt1 \'将统计结果绑定到Table With DataTables("按月统计表窗口_按月统计表").DataCols \'用表达式列计算库存数据 .Add("库存_数量", GetType(Integer), "IsNull([入库_数量],0) - ISNULL([领用_数量],0) + ISNULL([初始_库存],0)") .Add("库存_金额", GetType(Double), "[库存_数量] /[入库_数量] * [入库_金额]") End With 以上红色字体标识的部分,就是添加的分组, 目的是想要达到,讲入库和领用的日期,添加到最终的统计表中,应该怎么改? 这是提示的错误描述: An item with the same key has already been added.
[此贴子已经被作者于2022/9/22 11:06:23编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/9/22 11:11:00 -- 多个分组列参考:http://www.foxtable.com/webhelp/topics/2392.htm 另外这种合并统计,所有统计表的分组个数必须一致,也就是"统计表3"也必须增加一个月份的分组,否则无法关联
|
-- 作者:fengwenliuyan -- 发布时间:2022/9/22 13:23:00 -- Dim bd1 As New GroupTableBuilder("统计表1", DataTables("入库表")) Dim dt1 As fxDataSource bd1.Groups.AddDef("入库日期", "月份") bd1.Groups.AddDef("品名") \'根据品名分组 bd1.Totals.AddDef("入库数量", "入库_数量") \'对数量进行统计 bd1.Totals.AddDef("入库金额", "入库_金额") \'对金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New GroupTableBuilder("统计表2", DataTables("出库表")) Dim dt2 As fxDataSource bd2.Groups.AddDef("领用日期", "月份") bd2.Groups.AddDef("品名") \'根据品名分组 bd2.Totals.AddDef("领用数量", "领用_数量") \'对数量进行统计 bd2.Totals.AddDef("领用金额", "领用_金额") \'对金额进行统计 dt2 = bd2.BuildDataSource() dt1.Combine("品名", dt2, "品名") \'将销售统计数据组合到进货统计数据 Tables("按月统计表窗口_按月统计表").DataSource = dt1 \'将统计结果绑定到Table With DataTables("按月统计表窗口_按月统计表").DataCols \'用表达式列计算库存数据 .Add("库存_数量", GetType(Integer), "IsNull([入库_数量],0) - ISNULL([领用_数量],0)") .Add("库存_金额", GetType(Double), "[库存_数量] /[入库_数量] * [入库_金额]") End With 这种合并统计,所有统计表的分组个数必须一致,也就是"统计表3"也必须增加一个月份的分组,否则无法关联? 既然要一致,我索性把统计表3内容全去掉了。 但是,结果还是出现错误提示: An item with the same key has already been added.
|
-- 作者:有点蓝 -- 发布时间:2022/9/22 13:29:00 -- 多个分组列参考:http://www.foxtable.com/webhelp/topics/2392.htm |
-- 作者:fengwenliuyan -- 发布时间:2022/9/22 13:41:00 -- Dim bd1 As New GroupTableBuilder("统计表1", DataTables("入库表")) Dim dt1 As fxDataSource bd1.Groups.AddDef("品名") \'根据品名分组 bd1.Groups.AddDef("入库日期", "月份") \'根据月份分组 bd1.Totals.AddDef("入库数量", "入库_数量") \'对数量进行统计 bd1.Totals.AddDef("入库金额", "入库_金额") \'对金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New GroupTableBuilder("统计表2", DataTables("出库表")) Dim dt2 As fxDataSource bd2.Groups.AddDef("品名") \'根据品名分组 bd2.Groups.AddDef("领用日期", "月份") \'根据月份分组 bd2.Totals.AddDef("领用数量", "领用_数量") \'对数量进行统计 bd2.Totals.AddDef("领用金额", "领用_金额") \'对金额进行统计 dt2 = bd2.BuildDataSource() Dim nms As String() = {"品名", "月份"} \'指定连接列 dt1.Combine(nms, dt2, nms) \'将销售统计数据组合到进货统计数据 dt1.Show("统计表1") \'显示统计结果 结果,显示不出统计结果:
|
-- 作者:有点蓝 -- 发布时间:2022/9/22 13:53:00 -- dt1.Show("统计表1") 是显示为主表的,绑定到窗口,参考:http://www.foxtable.com/webhelp/topics/2305.htm |