找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman
社区贡献组   /  发表于:2014-11-18 15:13:00
11#
回复 8楼lzlg的帖子

很抱歉,产品组反馈目前没有办法在 CPL 中插入 SubReport,或者合并多张报表在同一个 WebViewer 中展示。

不过该需求已经被添加的需求列表中,看能否在未来版本中添加。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-24 14:24:00
12#
回复 8楼lzlg的帖子

lzlg 你好,
提供一个解决方案,先保存两个 PageReport 文件为 rdf 文件,再通过 SectionReport读取两个 rdf 文件从而达到合并效果。
附件是测试 Demo:

需要替换数据源:


关键代码:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             //PageReport1
  8.             var rdfe1 = new GrapeCity.ActiveReports.Export.Rdf.RdfRenderingExtension();
  9.             FileInfo savePath1 = new FileInfo(this.Server.MapPath("test1.rdf"));
  10.             // convert the first report to RDF stream
  11.             PageReport pr1 = new PageReport(new System.IO.FileInfo(this.Server.MapPath("PageReport1.rdlx")));
  12.             PageDocument pd1 = new PageDocument(pr1);
  13.             pd1.Render(rdfe1, new FileStreamProvider(savePath1.Directory, savePath1.Name));


  14.             //PageReport2
  15.             var rdfe2 = new GrapeCity.ActiveReports.Export.Rdf.RdfRenderingExtension();
  16.             FileInfo savePath2 = new FileInfo(this.Server.MapPath("test2.rdf"));
  17.             // convert the first report to RDF stream
  18.             PageReport pr2 = new PageReport(new System.IO.FileInfo(this.Server.MapPath("PageReport2.rdlx")));
  19.             PageDocument pd2 = new PageDocument(pr2);
  20.             pd2.Render(rdfe2, new FileStreamProvider(savePath2.Directory, savePath2.Name));



  21.             SectionReport sr = new SectionReport();

  22.             SectionDocument sd1 = sr.Document;
  23.             sd1.Load(this.Server.MapPath(savePath1.Name));
  24.             SectionDocument sd2 = new SectionDocument();
  25.             sd2.Load(this.Server.MapPath(savePath2.Name));

  26.             sd1.Pages.AddRange(sd2.Pages);

  27.             // upload the merged documents to the viewer
  28.             this.WebViewer1.Report = sr;
  29.         }
复制代码


谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部