如何提高c#中活动报表的性能

时间:2013-12-04 11:26:46

标签: c# activereports

以下是使用Active Reports显示报告的C#代码。

DataDynamics.ActiveReports.Viewer.Viewer VBatchInvoice;
List<M3.UDT.ReportData> lstReport="Values comes from database near about 800 records"
ar.DataSource = lstReport;
ar.Run();
VBatchInvoice.Document = ar.Document;

此主报告还包括子报告。

语句ar.Run()大约需要10秒钟。我的客户说这是太多时间了。我想尽可能减少这个时间。有什么可能的原因导致产生这么长时间?对此问题的任何解决方案都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我建议从这一点给出接受的答案:

What are the generic ways to make Reporting Services faster

我还会指出你对第3点的注意。

活动报告通常很慢,但您可以尝试减少此操作。

优化代码的各个部分等。但是我怀疑这会影响代码的ar.run部分。

除非你在报告中做了一些逻辑。您的逻辑应该在数据源上完成。因此,Active Reporting在构建报告时可以做的事情较少。如果您在一份报告中需要800条记录,也可能值得检查。

此外,这可以作为一夜之间的过程实施吗?我知道10分钟确实不是很长时间,但是如果可以的话。为什么不使用调度程序创建这些报告?当然,只有在经常使用报告时才应该这样做,并且只依赖于昨天的数据。

<强> 优化

这可以在以下几个方面完成:

SQL - 确保这一方运行顺畅有效,sql确实提供了对存储过程的执行时间,这很有用。但是,除非你使事情变得复杂,否则SQL通常是有效的。

.Net - 在这里做你的逻辑!查看使用DataReader而不是List或DataTable,DataReader 通常更快。这里的要点是逻辑!

ActiveReports - 请不要逻辑!除非此时必须完成。

答案 1 :(得分:0)

如果不审核您的报告布局,内容和数据来源,就无法知道报告为什么需要10秒,以及这是否合理。
我建议查看以下#页面是报告,报告中的图像,子报告,页面总数(页面n的m)。