找回密码
 立即注册

QQ登录

只需一步,快速开始

cyh9519

高级会员

7

主题

17

帖子

1028

积分

高级会员

积分
1028

活字格认证

cyh9519
高级会员   /  发表于:2015-5-20 17:55  /   查看:6235  /  回复:5
版主好,我写了一个小程序来测试AR的性能,代码如附件
界面上可以输入报表的页数,程序会根据这个数字自动生成相应页数的报表,在我们的开发机上(16G内存),运行20000页的报表并导出成PDF会很顺利,大概4分钟能导出成功;但是在测试电脑上(8G内存),导出一个20000页的报表需要40分钟,在4G内存的电脑上导出8000页的报表会报“内存溢出”的异常,这资源的消耗实在太大了
麻烦版主帮我看一下我们的程序哪里可以优化的


本帖子中包含更多资源

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

x

5 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-5-21 13:46:00
沙发
您好,
您的问题我们已经收到,会尽快处理。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-22 10:32:00
板凳
您好,
我们使用您的程序在一台内存为8G的机器上进行了测试,发现运行20000时,光加载完成后,就已经使用了7G多的内存。报表在内存当中生成大概用了1.5G,绘制为图像用了大概3G内存。不知道您的需求是怎么的?这边给您两个方面的建议,您可以考虑下,是否能够应用到您的需求当中。一,分批次加载显示和导出,当然这回增加您的工作量和复杂度。二,不显示,直接打印。这样的缺点就是不能够看到数据。
回复 使用道具 举报
cyh9519
高级会员   /  发表于:2015-5-25 14:01:00
地板
回复 3楼frank.zhang的帖子

有没有办法不显示,直接导出成PDF呢
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-5-25 15:00:00
5#
您好,
实现的思路是先创建报表模板,在您的例子中使用的是rpx格式的区域报表。所有,以这个报表为例子。

  1.             GrapeCity.ActiveReports.SectionReport sr = new GrapeCity.ActiveReports.SectionReport();
  2.             System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath("") + "\\Reports\\RP_YN_YarnSalesSummary.rpx");
  3.             sr.LoadLayout(xtr);
  4.             xtr.Close();
复制代码


然后使用进行导出
  1. // Export the report in PDF format.
  2. GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport PdfExport1 = new
  3. GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
  4. PdfExport1.Export(sr.Document, Application.StartupPath + "\\PDFExpt.pdf");
复制代码


PdfExport导出官方文档,您可以参考下
http://arhelp.grapecity.com/webh ... tion_namespace.html
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-6-1 17:44:00
6#
您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部