2012-06-05 4 views
1

Crystal 보고서를 pdf로 내보내는 루프를 구현했습니다. 아이디어는 그것의 conection과 초기 보고서 instanciating 다음 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이었다; 내가 그 라인을 제거했을 때 작동했습니다 ...