按产品统计每月销售额

代码:

Dim doc As New PrintDoc
Dim
rt As New prt.RenderText
Dim
ra As New prt.RenderArea
Dim
Agg1 As New prt.DataBinding.Aggregate("GroupSum") '这个统计用于按产品进行分组统计
Dim
Agg2 As New prt.DataBinding.Aggregate("SubGroupSum") '这个统计准备按月分组统计

ra
.DataBinding.DataSource = BindTables("订单") '将容器绑定到订单表
ra
.DataBinding.Grouping.Expressions.Add("Fields!产品.Value") '根据产品进行分组
ra
.Style.Spacing.Bottom = 2
doc
.body.Children.Add(ra)

rt
.Text= "[Fields!产品.Value]: [Aggregates!GroupSum.Value]" '设置打印内容
rt
.Style.FontBold= True
rt
.Style.FontSize=12
ra
.Children.Add(rt)

'下面的RenderText用于统计某产品不同月份的销售数量,所以需要指定数据源和分组表达式
'也就是说,还需要在产品分组里头再按月分组。

rt
= New prt.RenderText
rt
.DataBinding.DataSource = BindTables("订单") '将容器绑定到订单表
rt
.DataBinding.Grouping.Expressions.Add("Fields!日期.Value.Month") '根据月份进行分组
rt
.Text= " [Fields!日期.Value.Month]月: [Aggregates!SubGroupSum.Value]" '设置打印内容
ra
.Children.Add(rt)

agg1
.DataBinding = ra.DataBinding '这个一定要设置为ra的DataBinding,因为agg1统计的分组来自于ra定义的分组
agg1
.Running = 1 '分组统计
agg1
.ExpressionText = "Fields!数量.Value" '统计字段
doc
.DataSchema.Aggregates.Add(agg1)'定义好的统计必须添加到报表的DataSchema中

agg2
.DataBinding = rt.DataBinding '这个一定要设置为rt的DataBinding,因为agg1统计的分组来自于rt定义的分组
agg2
.Running = 1 '分组统计
agg2
.ExpressionText = "Fields!数量.Value" '统计字段
doc
.DataSchema.Aggregates.Add(agg2)'定义好的统计必须添加到报表的DataSchema中

doc
.Preview
()

执行结果:


本页地址:http://www.foxtable.com/webhelp/topics/1262.htm