C# 利用ReportViewer生成報表


本文主要是利用微軟自帶的控件ReportViewer進行報表設計的小例子,僅供學習分享使用,如有不足之處,還請指正。

涉及知識點:

  • ReportViewer :位於Microsoft.Reporting.WinForms命名空間, 主要用於報表的顯示
  • Report:報表,以rdlc結尾的文件,可視化設計報表模板。
  • 報表數據:內置字段,參數,圖像,數據集(本報表主要使用參數,和數據集)
  • ReportParameter:使用名稱和值實例化新的報表參數
  • ReportDataSource:報表的數據源與DataTable對象聯系起來

效果圖

如下:

核心代碼

相關代碼如下:

 1 /// <summary>
 2         /// 設置報表
 3         /// </summary>
 4         private void SetReport()
 5         {
 6             //第一步:清除之前的數據
 7             this.rptView.LocalReport.DataSources.Clear();
 8             //第二步:指定報表路徑
 9             this.rptView.LocalReport.ReportPath = "Report2.rdlc";
10             //第三步:構造新的DataTable
11             DataTable dt = new DataTable("DataTable1");
12             dt.Columns.Add("Name");
13             dt.Columns.Add("Score");
14             dt.Columns.Add("Id");
15             dt.Rows.Add(new object[] { "語文", 80, "Y0001" });
16             dt.Rows.Add(new object[] { "數學", 75, "S0001" });
17             dt.Rows.Add(new object[] { "英文", 96, "E0001" });
18             //名稱不能寫錯,和報表中的數據集名稱一致
19             ReportDataSource rdsItem = new ReportDataSource("DataSet1", dt);
20             //此處可以有多個數據源
21             this.rptView.LocalReport.DataSources.Add(rdsItem);
22             //第四步:構造參數
23             List<ReportParameter> lstParameter = new List<ReportParameter>() {
24                 new ReportParameter("Title",this.txtTitle.Text),
25                 new ReportParameter("Id",this.txtId.Text),
26                 new ReportParameter("Name",this.txtName.Text),
27                 new ReportParameter("Age",this.txtAge.Text),
28                 new ReportParameter("Sex",this.txtSex.Text),
29                 new ReportParameter("Salary",this.txtSalary.Text),
30                 new ReportParameter("Depart",this.txtDepart.Text)
31             };
32             this.rptView.LocalReport.SetParameters(lstParameter);
33             this.rptView.ZoomMode = ZoomMode.Percent;
34             this.rptView.ZoomPercent = 100;
35             //第五步:刷新報表
36             this.rptView.RefreshReport();
37         }
View Code

源碼下載鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM