BuildDetail
在生成某个细节区之前执行。
e参数属性:
Book: 返回工作簿。
Region: 返回正在打印的细节区名称。
DataRow:返回正在打印的行。
示例一
假定基于客户表设计了一个Excel报表模板,希望能够在报表中统计每个客户的已结账和未结账的货款。
实现这个功能的步骤是:
1、首先在设计模板的时候,插入两个标签:
2、在BeforeBuild事件中,将这两个标签插入到Marks集合:
Select
Case e.Book.TempLate3、在BuildDetail事件中加入下面的代码:
Select
Case e.Book.TempLate需要注意的是,如果定义细节区的时候,设置了自动添加空行,那么e.DataRow有可能返回Nothing,所以我们需要在代码中对此进行判断,以免出错。
此外,如果报表模板中存在不止一个细节区,那么应该在BuildDetail事件代码中判断细节区的名称:
Select
Case e.Book.TempLate示例二
如果还没有接触窗口设计,可以暂时忽略本示例。
我们之前介绍了一些扩展Excel报表功能的方法,例如利用BarCodeBuilder为Excel报表增加条码打印功能。
现在我们在此基础上进行扩展,为每一个细节区生成一个对应的条码图片。
实现这个功能的步骤为:
1、设计模版的时候,在细节区引用约定的图片文件"myimg.wmf"。
2、在BuildDetail事件中加入下面的代码:
Select
Case e.Book.TempLate
Case "模板名称"
If e.DataRow
IsNot Nothing
Then
Dim
Bar As New
BarCodeBuilder
Bar.Symbology
= Barpro.Symbology.Code39
Bar.Code
= e.DataRow("编码")
Bar.BarRatio
= 0.3
Bar.BarHeight
= 8
bar.SaveImage(ProjectPath
& "Images\myimg.wmf")
End If
End
Select