2015-05-20 74 views
2

儘管數據表被分析到只包含一行的pdf代碼中,但我遇到了一個問題,即我的水晶報表正在創建每個記錄的pdf頁。使用Crystal Reports從SQL數據庫中提取單行

我有一個查詢,它根據Id選擇單個行,然後將其放入數據集數據表中並解析爲水晶報表生成。

步進通過我可以確認數據表只包含一行,但輸出是pdf的多個頁面,每個頁面顯示不同的行。

有沒有人遇到過這個,如果是的話,是什麼原因導致我的數據表入門?背後

代碼:

public string CreateMaster(int Id) 
     { 
      DataTable dt = DataGrabber(Id);// returns a dataset 
      ExportOptions expo = new ExportOptions(); 
      PdfRtfWordFormatOptions form = new PdfRtfWordFormatOptions(); 
      string op = ""; 
      string smp = DateTime.Now.ToString("yyyyMMddHHmm"); 
      DiskFileDestinationOptions dfd = new DiskFileDestinationOptions(); 
      op = @"E:\SomeFolder\Client_ID" + Id + "_TS"+ smp + ".pdf"; 

      using (ClientDdPdf pdf = new ClientDdPdf()) 
      { 
       pdf.PrintOptions.PaperOrientation = PaperOrientation.Portrait; 
       pdf.PrintOptions.PaperSize = PaperSize.PaperA4; 
       pdf.SetDatabaseLogon(DbUser,DbPass,DbServer,DbDb); 
       pdf.SetDataSource(dt); // confirmed that the single datatable from dataset is parsed 
       dfd.DiskFileName = op; 
       expo = pdf.ExportOptions; 
       expo.ExportDestinationType = ExportDestinationType.DiskFile; 
       expo.ExportFormatType = ExportFormatType.PortableDocFormat; 
       expo.DestinationOptions = dfd; 
       expo.ExportFormatOptions = form; 
       pdf.Export(expo); 
      } 
      ReadPdfFile(op); 
      return op; 
     } 

回答

0

不完全知道爲什麼,這是問題,但它並沒有像自定義查詢我分析時已經是在水晶報表的查詢。

找到的解決方案是將水晶報告映射到視圖。本質上,這仍然是從相同的表中採取相同的領域,但它確實需要解析的數據表,併產生所需的領域。爲了澄清,我沒有更改我的代碼,我仍然使用相同的查詢來獲取必要的數據表,但是當將水晶報表綁定到數據庫時,我沒有將它綁定到表格,而是我創建的視圖。

相關問題