最近winform上使用ReportViewer做報表,因為之前沒弄過,所以遇到了很多問題,現在總結一下。 一、運行環境 .net環境:4.0 開發工具:vs2010 二、開發步驟 第一步,在winform窗體上添加ReportViewer控制項作為呈現報表的容器,重新命名為reportViewerT ...
最近winform上使用ReportViewer做報表,因為之前沒弄過,所以遇到了很多問題,現在總結一下。
一、運行環境
.net環境:4.0
開發工具:vs2010
二、開發步驟
第一步,在winform窗體上添加ReportViewer控制項作為呈現報表的容器,重新命名為reportViewerTest;
第二步,利用嚮導添加MyTestReport.rdlc報表文件;
第三步,利用嚮導添加數據集Test.xsd,數據集用來存放報表需要呈現的數據源的格式,在數據集中添加一個用來測試的Student表;
第四步,設計MyTestReport報表文件,這裡方便測試,只添加一個列表來顯示student信息。在添加列表的時候需要綁定在上一步添加的student表,報表綁定的數據源信息可以在【報表數據】里查看。【報表數據】可在【視圖】中打開。
第五步,在winform頁面中為reportViewerTest的屬性中指定該報表,或者動態為reportViewerTest指定報表文件,如
reportViewerTest.LocalReport.ReportEmbeddedResource="報表文件";// 包含命名空間和報表文件名稱 如 Test.ReportManage.MyTestReport.rdlc
動態創建一個datatable,表結構和數據源文件中的student表相同,如
DataTable studentDt=new DataTable("Student");
studentDt.Columns.Add("ID");
studentDt.Columns.Add("Name");
studentDt.Columns.Add("Age");
studentDt.Columns.Add("Sex");
為studentDt賦值:
studentDt.Rows.Add("10001", "Jack", 12, "男");
studentDt.Rows.Add("10002", "Lucy", 11, "女");
studentDt.Rows.Add("10003", "Jason", 15, "男");
studentDt.Rows.Add("10004", "Lili", 13, "女");
將數據表加入報表:
reportViewerTest.LocalReport.DataSources.Add(new ReportDataSource("Student",studentDt));//註:這裡數據源名稱要與上面再報表中定義的數據源名稱一致。
第六步,刷新報表控制項。
reportViewerTest.RefreshReport();
最後,如果報表中有跳轉鏈接,既報表間跳轉,需要實現報表控制項的Drillthrough事件,報表的相關初始化工作在該事件的方法中實現。