-- 作者:青丘狐
-- 发布时间:2020/12/9 11:57:00
-- 统计要多个字段加个日期字段要怎么改
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("期初库存")) Dim dt1 As fxDataSource bd1.Groups.AddDef("生产日期") \'根据型号分组 bd1.Groups.AddDef("仓库") \'根据型号分组 bd1.Groups.AddDef("产地") \'根据型号分组 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.Groups.AddDef("产地") \'根据型号分组 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.Groups.AddDef("仓库") \'根据型号分组 bd3.Groups.AddDef("产地") \'根据型号分组 bd3.Groups.AddDef("货物名称") \'根据品名分组 bd3.Groups.AddDef("规格型号") \'根据型号分组 bd3.Totals.AddDef("数量","出库_数量") \'对数量进行统计 bd3.Totals.AddDef("重量","出库_重量") \'对金额进行统计 dt3 = bd3.BuildDataSource()
Dim bd4 As New GroupTableBuilder("统计表4",DataTables("退货明细表")) Dim dt4 As fxDataSource bd4.Groups.AddDef("生产日期") \'根据型号分组 bd4.Groups.AddDef("仓库") \'根据型号分组 bd4.Groups.AddDef("产地") \'根据型号分组 bd4.Groups.AddDef("货物名称") \'根据品名分组 bd4.Groups.AddDef("规格型号") \'根据型号分组 bd4.Totals.AddDef("数量","退货_数量") \'对数量进行统计 bd4.Totals.AddDef("重量","退货_重量") \'对金额进行统计 dt4 = bd4.BuildDataSource()
Dim nms As String() = {"仓库","产地","货物名称","规格型号"} \'指定连接列 dt1.Combine("生产日期",dt2,"生产日期") dt1.Combine("生产日期",dt3,"生产日期") dt1.Combine("生产日期",dt4,"生产日期")
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据 dt1.Combine(nms,dt3,nms) \'将退货统计数据组合到进货统计数据 dt1.Combine(nms,dt4,nms)
Tables("销售提单登记_Table2").DataSource = dt1 \'将统计结果绑定到Table With DataTables("销售提单登记_Table2").DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([期初_数量],0) + IsNull([入库_数量],0) - ISNULL([出库_数量],0) - ISNULL([退货_数量],0)") .Add("库存_重量",Gettype(Double), "IsNull([期初_重量],0) + IsNull([入库_数量],0) - ISNULL([出库_重量],0) - ISNULL([退货_重量],0)") End With
With Tables("销售提单登记_Table2") .Cols("库存_数量").GrandTotal = True .Cols("库存_重量").GrandTotal = True .GrandTotal = True End With
之前统计没有问题 加入 生产日期后出错 统计不出来
|
-- 作者:有点蓝
-- 发布时间:2020/12/9 13:37:00
--
dt4 = bd4.BuildDataSource() Dim nms As String() = {"生产日期","仓库","产地","货物名称","规格型号"} \'指定连接列 dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据 dt1.Combine(nms,dt3,nms) \'将退货统计数据组合到进货统计数据 dt1.Combine(nms,dt4,nms)
|
-- 作者:有点蓝
-- 发布时间:2020/12/9 14:27:00
--
在Groups集合中添加一个分组列的语法是: Groups.AddDef(Name) Groups.AddDef(Name, NewName) Groups.AddDef(Name, NewName, NewCaption) Groups.AddDef(Name, DateGroup) Groups.AddDef(Name, DateGroup, NewName) Groups.AddDef(Name, DateGroup, NewName, NewCaption) 参数说明
Name: 字符型,指定分组列。 NewName: 字符型,用于给分组列指定一个新的名称,这个名称在统计表中显示。 NewCaption: 字符型,用于给分组列设置标题。 DateGroup: DateGroupEnum型枚举,如果分组列是日期列,可用此属性指定如何根据日期进行分组,默认按月分组。 DateGroupEnum枚举的可选值: None : 不分组 Year: 按年分组 Quarter: 按季度分组 Month: 按月分组 Week: 按周分组 Day: 按天分组,月中的某一天。 Hour: 按小时分组 Minute: 按分钟分组 Second: 按秒分组
bd1.Groups.AddDef("生产日期",DateGroupEnum.none)
|
-- 作者:青丘狐
-- 发布时间:2020/12/9 16:20:00
--
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("期初库存")) Dim dt1 As fxDataSource
bd1.Groups.AddDef("生产日期",DateGroupEnum.none) bd1.Groups.AddDef("仓库") \'根据型号分组 bd1.Groups.AddDef("产地") \'根据型号分组 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("生产日期",DateGroupEnum.none) bd2.Groups.AddDef("仓库") \'根据型号分组 bd2.Groups.AddDef("产地") \'根据型号分组 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("生产日期",DateGroupEnum.none) bd3.Groups.AddDef("仓库") \'根据型号分组 bd3.Groups.AddDef("产地") \'根据型号分组 bd3.Groups.AddDef("货物名称") \'根据品名分组 bd3.Groups.AddDef("规格型号") \'根据型号分组 bd3.Totals.AddDef("数量","出库_数量") \'对数量进行统计 bd3.Totals.AddDef("重量","出库_重量") \'对金额进行统计 dt3 = bd3.BuildDataSource()
Dim bd4 As New GroupTableBuilder("统计表4",DataTables("退货明细表")) Dim dt4 As fxDataSource bd1.Groups.AddDef("生产日期",DateGroupEnum.none) bd4.Groups.AddDef("仓库") \'根据型号分组 bd4.Groups.AddDef("产地") \'根据型号分组 bd4.Groups.AddDef("货物名称") \'根据品名分组 bd4.Groups.AddDef("规格型号") \'根据型号分组 bd4.Totals.AddDef("数量","退货_数量") \'对数量进行统计 bd4.Totals.AddDef("重量","退货_重量") \'对金额进行统计 dt4 = bd4.BuildDataSource()
Dim nms As String() = {"生产日期","仓库","产地","货物名称","规格型号"} \'指定连接列 dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据 dt1.Combine(nms,dt3,nms) \'将退货统计数据组合到进货统计数据 dt1.Combine(nms,dt4,nms)
Tables("销售提单登记_Table2").DataSource = dt1 \'将统计结果绑定到Table With DataTables("销售提单登记_Table2").DataCols \'用表达式列计算库存数据 .Add("库存_数量",Gettype(Integer), "IsNull([期初_数量],0) + IsNull([入库_数量],0) - ISNULL([出库_数量],0) - ISNULL([退货_数量],0)") .Add("库存_重量",Gettype(Double), "IsNull([期初_重量],0) + IsNull([入库_数量],0) - ISNULL([出库_重量],0) - ISNULL([退货_重量],0)") End With
With Tables("销售提单登记_Table2") .Cols("库存_数量").GrandTotal = True .Cols("库存_重量").GrandTotal = True .GrandTotal = True End With
谢谢 !解决了
[此贴子已经被作者于2020/12/9 16:21:27编辑过]
|