1

我在 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 文件。这会导致什么?电脑也是一样的,我什么都没改。但它不能正常工作。任何人都可以帮忙吗?

4

1 回答 1

1

可能是数据库速度慢吗?(应阿迪尔的要求)


附加信息(希望你不介意):

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

于 2012-09-27T00:53:13.127 回答