一 綁定數(shù)據(jù)庫資源
這個比較簡單禁悠,新建一個Report之后,或者在Data Source 窗口點新建Data Source碌冶,會彈出如下對話框其弊,在框中選擇DataBase之后按照自己的數(shù)據(jù)庫相關(guān)信息進行配置即可慕爬。
這種選擇資源的方式,獲取的字段都是數(shù)據(jù)庫中的表茵典、視圖湘换、存儲過程以及觸發(fā)器中的字段,比較依賴數(shù)據(jù)庫SQL語句,當然彩倚,這些字段的值也是可以在后面的運行過程中動態(tài)改變的筹我。
二 運行時動態(tài)綁定資源
動態(tài)綁定資源可以在針對數(shù)據(jù)庫中的表或視圖中的字段,在運行過程中改變它們的值署恍,也可以是從一開始就脫離數(shù)據(jù)庫崎溃,自己設(shè)計字段和表,然后在運行過程中為這些字段賦值盯质。這里演示后者袁串,因為后者的靈活性更大,在開發(fā)過程中也更常為使用呼巷。
1. 首先新建Report時直接跳過圖一所示的選擇數(shù)據(jù)源的過程囱修。這時將會新建一個空白的Report。
2. 然后在項目中新建一個DataSet數(shù)據(jù)集王悍。
如圖2所示破镰,在空白處右鍵新建一個DataTable,然后對DataTable進行編輯压储,添加列鲜漩。如圖3所示。
3. 然后返回Report對象的設(shè)計頁面集惋,在Report Data窗口新建一個DataSet 數(shù)據(jù)集孕似。
在DataSource下拉欄中選擇剛才創(chuàng)建的數(shù)據(jù)集,然后選擇數(shù)據(jù)表刮刑,數(shù)據(jù)表中的字段會在Fields窗口中顯示喉祭。然后點確定即可。
4. 向Report對象中拖一個Table控件雷绢,并為其賦值泛烙。如圖5所示。
5. 寫一個返回DataTable的函數(shù)翘紊,返回的DataTable即包含我們需要用到的數(shù)據(jù)蔽氨。這些數(shù)據(jù)可以從數(shù)據(jù)庫中獲取,也可以通過其他方式生成帆疟。下面只是個例子孵滞。
private DataTable load_test()
{
DataTable dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("age");
dt.Columns.Add("sex");
dt.Rows.Add("tiang", 21, "男");
return dt;
}
6. 在窗體中添加一個ReportViewer,并完成以下代碼
//綁定報表文件
reportViewer1.LocalReport.ReportPath = @"../../Report3.rdlc";
//清空DataSource
reportViewer1.LocalReport.DataSources.Clear();
//重新添加DataSource鸯匹,切記"DataSet1"是在Report對象中添加的數(shù)據(jù)集的名稱坊饶,load_test()返回的DataTable包含該數(shù)據(jù)集中字段的值。要一一對應殴蓬。
reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", load_test()));
//刷新報表顯示器
reportViewer1.RefreshReport();
至此匿级,動態(tài)綁定數(shù)據(jù)源的工作級已完成蟋滴。