ReportViewer不連接數據庫,自定義DataSet導出到報表


最近在看報表這一塊,在網上找到的大都是連接數據庫的,對於自定義的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


免責聲明!

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



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