這篇文章主要為大家詳細介紹了C#利用ReportViewer產生報表的相關代碼,具有一定的參考價值,感興趣的小夥伴們可以參考一下
本文主要是利用微軟內建的控制項ReportViewer進行報表設計的小例子,具體內容如下
涉及知識點:
ReportViewer :位於Microsoft.Reporting.WinForms命名空間, 主要用於報表的顯示
Report:報表,以rdlc結尾的檔案,可視化設計報表範本。
報表資料:內建欄位,參數,映像,資料集(本報表主要使用參數,和資料集)
ReportParameter:使用名稱和值執行個體化新的報表參數
ReportDataSource:報表的資料來源與DataTable對象聯絡起來
如下:
相關代碼如下:
/// <summary> /// 設定報表 /// </summary> private void SetReport() { //第一步:清除之前的資料 this.rptView.LocalReport.DataSources.Clear(); //第二步:指定報表路徑 this.rptView.LocalReport.ReportPath = "Report2.rdlc"; //第三步:構造新的DataTable DataTable dt = new DataTable("DataTable1"); dt.Columns.Add("Name"); dt.Columns.Add("Score"); dt.Columns.Add("Id"); dt.Rows.Add(new object[] { "語文", 80, "Y0001" }); dt.Rows.Add(new object[] { "數學", 75, "S0001" }); dt.Rows.Add(new object[] { "英文", 96, "E0001" }); //名稱不能寫錯,和報表中的資料集名稱一致 ReportDataSource rdsItem = new ReportDataSource("DataSet1", dt); //此處可以有多個資料來源 this.rptView.LocalReport.DataSources.Add(rdsItem); //第四步:構造參數 List<ReportParameter> lstParameter = new List<ReportParameter>() { new ReportParameter("Title",this.txtTitle.Text), new ReportParameter("Id",this.txtId.Text), new ReportParameter("Name",this.txtName.Text), new ReportParameter("Age",this.txtAge.Text), new ReportParameter("Sex",this.txtSex.Text), new ReportParameter("Salary",this.txtSalary.Text), new ReportParameter("Depart",this.txtDepart.Text) }; this.rptView.LocalReport.SetParameters(lstParameter); this.rptView.ZoomMode = ZoomMode.Percent; this.rptView.ZoomPercent = 100; //第五步:重新整理報表 this.rptView.RefreshReport(); }