在报表文件不同的数据库上运行时,Crystal Report加载速度非常慢

时间:2011-08-26 20:30:38

标签: c# .net crystal-reports

我正在将Crystal Reports 2008 SP2与C#.NET 4.0应用程序一起使用。在应用程序中,我们使用ReportDocument上的Load方法加载Crystal Reports:

CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(fileName);

当可以访问嵌入在报表中的数据库名称时,这可以正常工作,但是当它不可访问时(例如,这在生产或UAT中运行,数据库名称不同),此Load方法非常慢。我想这是因为Crystal试图在报告中嵌入的数据库中验证报告(或类似的东西)。

有没有办法在Crystal中关闭此行为或修改报表以便数据库名称未嵌入其中?

谢谢!

2 个答案:

答案 0 :(得分:0)

在您第一次调用报表时,Crystal报表需要很长时间才能加载其DLL。 SAP建议使用线程或后台工作人员在第一次应用程序执行时加载虚拟报告,以便在调用生产报告时准备好DLL。
希望它有所帮助。

答案 1 :(得分:0)

这可能是许多影响的结果。首先预加载dll会有所帮助,但仅限于第一份报告。如果在引入dll预加载后滞后仍然是一个问题,则可能是dll必须确保您连接的数据库的模式与原始数据库的模式匹配。这个“应该”仅在您第一次针对新数据库运行时出现,因此它可能有助于针对新数据库预先运行一些报告,以确保他们知道数据字典已经过验证。 CR实际上并不是所有那些与民意相反的错误,它只是古怪!