1

Crystal レポートを pdf にエクスポートするループを実装しました。アイデアは、最初のレポートをその接続でインスタンス化し、ループ内でパラメーターを適用してから PDF にエクスポートすることです (レコードごとに 1 つの pdf を取得します) が、レポートは最初のループ実行のデータで pdf をエクスポートし続けます。新しいパラメーターを適用した後、データを強制的に更新するにはどうすればよいですか?

コード例:

ReportDocument reportDoc=new ReportDocument();
reportDoc.Load("c:\\reportx.rpt");
ConnectionInfo cinfo = FunctionLibrary.getCrystalConection();
foreach (Table table in reportDoc.Database.Tables)
{
    table.LogOnInfo.ConnectionInfo = cinfo;
    table.ApplyLogOnInfo(table.LogOnInfo);
}
string[] docnumbers=new[]{"1","2","3","4"};

for(int i=0;i<docnumbers.Lenght; i++)
{
    report.SetParameterValue(0, docnumbers[i]);
    report.Refresh();
    DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
    PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
    CrDiskFileDestinationOptions.DiskFileName = "C:\\generatedpdf " + docnumbers[i] + ".pdf";
    ExportOptions CrExportOptions = reportDoc.ExportOptions;
    {
        CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
        CrExportOptions.FormatOptions = CrFormatTypeOptions;
    }
    reportDoc.Export();
}
reportDoc.Close();
4

1 に答える 1

0

問題は report.Refresh(); にありました。その行を削除すると、機能しました...

于 2012-06-06T08:34:11.970 に答える