Crystal报告ExportToDisk消耗了大量时间

时间:2012-09-22 08:46:36

标签: c# performance crystal-reports

我在C#中有一个控制台应用程序,可以处理水晶报告。我正在使用以下方式加载报告(仅一次)

    static ReportDocument cryReportDocument = new ReportDocument();

    static void Main(string[] args)
    {            
        cryReportDocument.Load("reportLocation");
        ....
        //I am exporting about 20.000 .pdf files
        while(true)
        {
            ....
            //destianationPath is file location 
            ExportToPdf(destinationPath)
        }
    }

然后我使用以下方法将此报告导出为pdf文件:

    //Export pdf file
    static void ExportToPdf(string destianationPath)
    {                     
        cryReportDocument.SetDatabaseLogon("userName", "password", "Database", "");
        //Adding paremeters to report
        cryReportDocument.SetParameterValue(.., ..);    
        //This line consumes a lot of time now  
        cryReportDocument.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, destianationPath);
    }

我之前(大约两三天前)使用过这个程序来导出大约15.000 .pdf文件并且效果非常好。在大约不到一秒的时间内导出一个.pdf文件。我在代码中没有更改任何内容,但该行大约需要5秒才能导出一个.pdf文件。什么可以导致这个?电脑是一样的,我什么都没改变。但它不能正常工作。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

数据库可能很慢吗? (按照阿迪尔的要求)


其他信息(希望你不介意):

ExportToDisk方法使crystal实际执行数据库查询。在这种情况下,最好的测试是直接执行查询以查看需要多长时间。根据需要进行调整。