BuildGroupHeader
在生成某个分组头之前执行。
e参数属性:
Book: 返回工作簿
TableName: 字符型,返回分组的表名
ColumnName:字符型,返回分组的列名
DataRow: DataRow类型,返回此分组的第一个数据行
NewPage: 逻辑型,如果此分组头是因为换页而重复打印的,则返回True,否则返回False。
之前介绍的分组统计,统计结果只能在分组尾显示,有了BuildGroupHeader事件,我们就可以在分组头显示统计结果了。
示例
假定设计了一个报表模板,根据产品分组打印订单,希望在分组头打印金额和数量小计。
实现步骤
1、在设计模板的时候,在分组头插入两个标签: <数量合计>、<金额合计> 。
2、在BeforeBuild事件中,将两个标签插入到Marks集合:
Select
Case e.Book.TempLate
Case "模板名称"
e.Book.Marks.Add("数量合计",
0)
e.Book.Marks.Add("金额合计",
0)
End Select
3、在BuildGroupHeader事件中加入代码:
Select
Case e.Book.TempLate
Case "模板名称"
Dim
Filter As String =
"产品 = '" & e.Datarow("产品")
& "'"
e.Book.Marks("数量合计")
= DataTables("订单").Compute("Sum(数量)",Filter)
e.Book.Marks("金额合计")
= DataTables("订单").Compute("Sum(金额)",Filter)
End Select
提示,如果模板中有多个分组,需要用e参数TableName和ColumnName来判断是哪一个分组,例如:
Select
Case e.Book.TempLate
Case
"模板名称"
If
e.TableName = "订单" AndAlso
e.ColumnName = "产品" Then
Dim
Filter As String =
"产品 = '" & e.Datarow("产品")
& "'"
e.Book.Marks("数量合计") =
DataTables("订单").Compute("Sum(数量)",Filter)
e.Book.Marks("金额合计")
= DataTables("订单").Compute("Sum(金额)",Filter)
End
If
End Select
本页地址:http://www.foxtable.com/webhelp/topics/1958.htm