如题,先交叉统计后再进行汇总,得到如下图的结果
代码如下:
Dim b As New SQLCrossTableBuilder("产品出货统计","出库明细")
b.C '指定数据源
b.AddTable("出库明细","出库单号","出库单","出库单号") '添加统计表
b.HGroups.AddDef("产品编码") '添加水平分组列
b.HGroups.AddDef("{出库明细}.品名") '添加水平分组列
b.HGroups.AddDef("{出库明细}.规格") '添加水平分组列
b.VGroups.AddDef("出库日期",DateGroupEnum.Year,"{0}年") '添加日期列用于垂直分组,按年分组
b.VGroups.AddDef("出库日期","{0}月") '添加日期列用于垂直分组,按月分组
b.Totals.AddDef("{出库明细}.数量") '添加数量列用于统计
b.Build '生成统计表
MainTable = Tables("产品出货统计") '打开生成的统计表
'再次汇总
Dim t As Table = Tables("产品出货统计")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "产品编码"
g.TotalOn = "数量_1,数量_2" 如果交叉统计得到的数据是3个月的,这里后面还要加上 "数量_3"否则就不会汇总
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)
t.Subtotal() '生成汇总模式
请问上面红色部分的统计列要如何自动得来(如果直接用"{出库明细}.数量"是会出错的,因为前面的交叉统计的结果是随着每个月的出库单自动延续下去的。红色那里要能动态变化。
谢谢!
[此贴子已经被作者于2013-11-5 23:13:52编辑过]