cyh9519 发表于 2015-5-20 17:56:00

AR显示/导出大数据量时的性能问题

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


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

您好,
实现的思路是先创建报表模板,在您的例子中使用的是rpx格式的区域报表。所有,以这个报表为例子。

            GrapeCity.ActiveReports.SectionReport sr = new GrapeCity.ActiveReports.SectionReport();
            System.Xml.XmlTextReader xtr = new System.Xml.XmlTextReader(Server.MapPath("") + "\\Reports\\RP_YN_YarnSalesSummary.rpx");
            sr.LoadLayout(xtr);
            xtr.Close();

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

PdfExport导出官方文档,您可以参考下
http://arhelp.grapecity.com/webhelp/AR9/index.html#GrapeCity.ActiveReports.Export.Pdf.v9~GrapeCity.ActiveReports.Export.Pdf.Section_namespace.html

frank.zhang 发表于 2015-6-1 17:44:00

您好,
距离这个问题的最后回复已经过去了一段时间,不知道这个问题您是否已经解决?
如果没有解决,欢迎跟贴接续讨论,如果已经解决请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: AR显示/导出大数据量时的性能问题