ActiveReports 中实现动态加载子报表(1)-基础篇

很多报表像质检报告,体检报告等一些报告类的报表,通常页数不固定,会根据对应的主体,而生成相应的附件,所以需要根据具体的主体的值,动态加载不同的页面。 ActiveReports 为了实现这种功能,提供了动态加载子报表的方法。将报告中的不同页使用不同的报表模板来存储,然后根据传值选择不同的子报表来加载,比如质检报告1,由总结信息,一类质检结果,二类质检结果组成,而质检报告2,由总结信息, 三类质检结果,一类质检结果组成,那这个时候动态生成子报表的个数,然后根据顺序,取找对应的子报表模板。

发布于 2016/11/30 00:00

ActiveReports

很多报表像质检报告,体检报告等一些报告类的报表,通常页数不固定,会根据对应的主体,而生成相应的附件,所以需要根据具体的主体的值,动态加载不同的页面。 ActiveReports 为了实现这种功能,提供了动态加载子报表的方法。将报告中的不同页使用不同的报表模板来存储,然后根据传值选择不同的子报表来加载,比如质检报告1,由总结信息,一类质检结果,二类质检结果组成,而质检报告2,由总结信息, 三类质检结果,一类质检结果组成,那这个时候动态生成子报表的个数,然后根据顺序,取找对应的子报表模板。

接下来我们来看具体的实现代码:

1. 新建一张主体报表模板,用于加载子报表,可以放到

image_thumb[2]

 

2. 新建子报表,SubReport1.rdlx;SubReport2.rdlx;SubReport3.rdlx

image_thumb[5]

3. 添加子报表函数

根据传入的SubReport名称(或是相对路径,如..\Report\SubReport1),赋给SubReport控件,通常子报表需要传参数,本方法中也有关于传参的写法。

  private PageReport AddSubReport(string[] AddSubReport1,PageReport report)
        {
            
            for (int i = 0; i < AddSubReport1.Length; i++)
            {

           
                Subreport temp = new Subreport();
              //  temp.Name = rpt.Report.Name;
                temp.Name = AddSubReport1[i];//子报表名称
                temp.ReportName = AddSubReport1[i];//子报表对应要加载的报表名称
                temp.Height = "2.5cm";//高度
                temp.Width = "10cm";//宽度
                temp.Top = "0" + i*2.5+"cm";//距离上边距的位置
                
                if(temp.Name== "SubReport1")
                {
                    var p = new GrapeCity.ActiveReports.PageReportModel.Parameter { Name = "ReportParameter1", Value = "123" };
                    temp.Parameters.Add(p);
                }
                report.Report.Body.ReportItems.Add(temp);//将生成好的子报表添加到主报表对象中
                
              
            }

            return report;//返回报表对象
        }

 

示例下载:

 

您在使用产品过程中有任何疑问,可以登录葡萄城开发者社区和经验丰富的技术工程师、ActiveReports开发人员交流:了解更多

了解ActiveReports产品更多特性:

/developer/activereports

下载产品体验产品功能:

/download/?pid=16

ActiveReports 报表控件| 下载试用

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

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

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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