找回密码
 立即注册

QQ登录

只需一步,快速开始

iamzhaiwei

初级会员

30

主题

100

帖子

260

积分

初级会员

积分
260

活字格认证

iamzhaiwei
初级会员   /  发表于:2014-2-21 10:33  /   查看:8342  /  回复:5
在ASP.NET MVC中用Active Report,有个报表列数太多,我把它分成了6个报表,用的是区域报表,我想把它合并成一个报表来返回,6个报表从上到下依次排列,怎么实现?

5 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-2-21 13:59:00
沙发
回复 1楼iamzhaiwei的帖子

问题看到了,我的理解是:您有6个区域报表(基于Code?  基于XML?)

现在想合并为1个区域报表,HTML类型的吗?
是从后台传递给前台吗?

这行代码您可以先试试:

  1. rpt1.Document.Pages.AddRange(rpt2.Document.Pages);

  2. viewer1.Document = rpt1.Document;
复制代码
回复 使用道具 举报
iamzhaiwei
初级会员   /  发表于:2014-2-21 14:30:00
板凳
回复 2楼roger.wang的帖子

6个区域报表是基于Code的,合并为一个区域报表,从后台传递给前台,按照你写的,代码如下,在前台页面仍然只显示report1,
  1. SectionReport report1 = new Report7_1();
  2. SectionReport report2 = new Report7_2();
  3. SectionReport report3 = new Report7_3();
  4. SectionReport report4 = new Report7_4();
  5. SectionReport report5 = new Report7_5();
  6. SectionReport report6 = new Report7_6();
  7. report1.Document.Pages.AddRange(report2.Document.Pages);
  8. report1.Document.Pages.AddRange(report3.Document.Pages);
  9. report1.Document.Pages.AddRange(report4.Document.Pages);
  10. report1.Document.Pages.AddRange(report5.Document.Pages);
  11. report1.Document.Pages.AddRange(report6.Document.Pages);
  12. return PartialView("WebViewer", report1);
复制代码
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-24 13:57:00
地板
回复 3楼iamzhaiwei的帖子

初步判断,new出实例后,报表没有run,故Document.Pages里面无内容,也就是前台页面仍然只是report1的。

调试下面代码试试看:

  1. SectionReport report1 = new Report7_1();
  2. SectionReport report2 = new Report7_2();
  3. report2.Run();  //每个报表预先运行一下,生成报表后,添加到report1里面才有真实的报表数据。
  4. SectionReport report3 = new Report7_3();
  5. SectionReport report4 = new Report7_4();
  6. SectionReport report5 = new Report7_5();
  7. SectionReport report6 = new Report7_6();
  8. report1.Document.Pages.AddRange(report2.Document.Pages);
  9. report1.Document.Pages.AddRange(report3.Document.Pages);
  10. report1.Document.Pages.AddRange(report4.Document.Pages);
  11. report1.Document.Pages.AddRange(report5.Document.Pages);
  12. report1.Document.Pages.AddRange(report6.Document.Pages);
  13. return PartialView("WebViewer", report1);
复制代码
回复 使用道具 举报
iamzhaiwei
初级会员   /  发表于:2014-2-24 14:43:00
5#
回复 4楼roger.wang的帖子

问题已经解决了
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-2-24 15:35:00
6#
回复 5楼iamzhaiwei的帖子

nice。

您的反馈非常有利于改帖子被其他用户参照,故毫不犹豫的加精了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部