1.
在需要显示主从表中的数据时,使用子报表能够提供很大的灵活性,一般就是把主表的信息显示在
detail
中,如果要每页的上方都要显示主表,就可以放在
PageHeader
中。再把子表的信息放在
Detail
中,然后把子报表中的控件直接绑定到数据源上或者使用上篇随笔中的提到的方式从对象集合中提取数据。
2.
使用子报表:
新建报表,然后在工具箱上可以看到
SubReport
控件,拖放一个控件到
Detail
部分,用此控件来加载子报表。
再新建一个报表,命名为
SubReport1
,接下来在主报表中写代码,在页面设计器上选中
Detail
部分,在属性窗口切换到事件栏,双击
Format
,将会产生
Detail_Format
事件,下面就要在这个事件里指定子报表控件所要加载的报表。
3.
由于
Detail
部分会进行重复显示的,所以,只能指定一次报表源,在这里,我们按照下面的例子:
ActiveReport
sub = null;
private
void Detail_Format(object sender, System.EventArgs eArgs)
{
if ( sub == null )
{
sub = new ActiveReports2();
this.SubReport.Report = sub;
}
}
先定义一个全局的子报表,然后在
Detail_Format
事件中对其进行初始化。
4.
还有要注意的一点是,在使用完子报表后要将其释放,销毁掉,具体的代码放在主报表的
ReportEnd
事件中,例如:
private
void ActiveReports1_ReportEnd(object sender, System.EventArgs eArgs)
{
sub.Document.Dispose();
sub.Dispose();
sub = null;
}
5.
下面剩下的工作就是摆放控件并设置显示的字段了,加载数据等等了,前面的随笔都有介绍。
下篇随笔中将介绍如何使用
ActiveReport for .net
开发交叉报表。