2012-06-05 2 views
1

Я реализовал цикл, который экспортирует хрустальный отчет в pdf. Идея заключается в инициализации исходного отчета с его коннектом, а затем внутри цикла, применяющего параметры перед экспортом в PDF (поэтому я получаю один PDF для каждой записи), но в отчете сохраняется экспорт pdf с данными первого выполнения цикла. Как я могу заставить его обновить свои данные после применения новых параметров?Экспорт отчетов Crystal Reports в 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(); 
+0

Вы уверены, что если вы пройдете «2» в первый раз, то увидите правильные данные? –

+0

Я застрял в течение 2 дней, пытаясь добиться этой точной работы. Этот код дал мне правильный путь. –

ответ

0

Проблема заключалась в report.Refresh(); когда я удалил эту линию, она сработала ...

Смежные вопросы