上篇随笔演示了在ActiveReport for .net中如何从对象集合中提取数据。本文简单介绍如何使用子报表来显主从表中的数据。

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开发交叉报表。

ActiveReports 报表控件| 下载试用

ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求,作为专业的报表工具为全球超过 300,000 开发人员提供了全面的报表开发服务。

您对ActiveReports产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>>技术支持论坛

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态