2013-08-17 226 views
1

我將一個名爲「CustomerId」的參數傳遞給Crystal Report('.rpt')文件,該文件基於生成報告的參數。當我加載這個報告('.rpt')水晶報告查看器其工作正常...在單個cystal報告查看器中加載多個報告

但我有不同的「CustomerId」。我需要根據參數生成報告並將它們加載到單個報告查看器中。即不是逐個查看它們,我希望將它們全部視爲單頁報表查看器。

任何一個可以告訴我怎麼解決這個請....

回答

1

你需要設置你的客戶ID參數接受多個值。同時按客戶創建一個組,然後爲組中最後一個部分設置開始新頁面

0

爲每個報告創建一個報告查看器。然後報告查看者在選項卡控件上添加標籤頁。

screenshot

 private void FormCrystalRepotViewer_Shown(object sender, EventArgs e) 
    { 
     ReportDocument crReport = crArrReport[0]; 
     crystalReportViewer.ReportSource = crReport; 
     crystalReportViewer.Zoom(100); 
     crystalReportViewer.PrintMode = CrystalDecisions.Windows.Forms.PrintMode.PrintToPrinter; 
     tcTabControl.TabPages[0].Text = arrRaporlar.Get(0).sReportName; 

     for (int i = 1; i < crArrReport.Count; i++) 
     { 
      crReport = crArrReport[i]; 
      CrystalDecisions.Windows.Forms.CrystalReportViewer crview = new CrystalDecisions.Windows.Forms.CrystalReportViewer(); 

      crview.ReportSource = crReport; 
      crview.Zoom(100); 
      crview.PrintMode = crystalReportViewer.PrintMode; 
      crview.ActiveViewIndex = -1; 
      crview.BorderStyle = crystalReportViewer.BorderStyle; 
      crview.Cursor = crystalReportViewer.Cursor; 
      crview.Dock = crystalReportViewer.Dock; 
      crview.Location = crystalReportViewer.Location; 
      crview.Size = crystalReportViewer.Size; 
      crview.TabIndex = 0; 
      crview.ToolPanelView = crystalReportViewer.ToolPanelView; 
      crview.ShowParameterPanelButton = crystalReportViewer.ShowParameterPanelButton; 
      crview.ShowLogo = crystalReportViewer.ShowLogo; 

      crview.ReportRefresh += new CrystalDecisions.Windows.Forms.RefreshEventHandler(this.crystalReportViewer_ReportRefresh); 

      TabPage page = new TabPage(arrRaporlar.Get(i).sReportName); 
      tcTabControl.TabPages.Add(page); 
      page.Controls.Add(crview); 
      page.AutoScroll = true; 
     } 
    } 
     private void crystalReportViewer_ReportRefresh(object source, CrystalDecisions.Windows.Forms.ViewerEventArgs e) 
    { 
     e.Handled = true; 
     ParametreleriKontrolEt(); 
     crystalReportViewer.ReportSource = crArrReport[0]; 
     for (int i = 1; i < crArrReport.Count; i++) 
     { 
      CrystalDecisions.Windows.Forms.CrystalReportViewer crview = new CrystalDecisions.Windows.Forms.CrystalReportViewer(); 
      crview = tcTabControl.TabPages[i].Controls[0] as CrystalDecisions.Windows.Forms.CrystalReportViewer; 
      crview.ReportSource = crArrReport[i]; 
     } 
    }