最近在看報表這一塊,在網上找到的大都是連接數據庫的,對於自定義的DataTable數據沒有詳細的連接說明,經過一番尋找,總結一下大概方法,大神請直接無視
1、添加一個數據集
點確定后界面如下
在空白處右鍵
修改名稱
添加行
重命名行
表效果
2、添加報表
確定后出現下面界面
然后添加資料數據源
點擊新增,選擇資料集,出現下面界面
輸入名稱為message,資料來源選擇DataSet1,也就是你創建的DataSet1文件,資料集選擇mytable,點擊確定
然后在工具欄里拉一個資料表到報表上,然后如下
再如下
保存,報表完成,
下面搞窗體,拉一個ReportViewer控件到窗體上,
如果工具箱內找不到的話就自己添加進來一個,如下
然后在窗體的load事件里寫代碼 如下
1 DataTable dt = new DataTable(); 2 dt.Columns.Add(new DataColumn("row1", typeof(string))); 3 dt.Columns.Add(new DataColumn("row2", typeof(string))); 4 for (int i = 0; i < 6; i++) 5 { 6 DataRow dr = dt.NewRow(); 7 dr[0] = "a"; 8 dr[1] = "b"; 9 dt.Rows.Add(dr); 10 } 11 reportViewer1.LocalReport.ReportPath = Application.StartupPath + "\\Report1.rdlc"; 12 //指定數據集,數據集名稱后為表,不是DataSet類型的數據集 13 this.reportViewer1.LocalReport.DataSources.Clear(); 14 this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("message", dt)); //在vs2005中沒有找到重命名為messge的方法,這里這樣寫
// this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_mytable",dt));
15 //顯示報表 16 this.reportViewer1.RefreshReport();
運行一下看看
注意:
第2和3行的列名要和數據集DataSet1里的列名一致
第11行的文件名要和你添加的報表文件名一致,路徑要正確
第14行的message要和報表里的那個數據集的名稱對應
樣例下載:http://pan.baidu.com/share/link?shareid=183935&uk=33979446