2013-08-17 165 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]; 
     } 
    }