ReportViewer是vs自帶控件。今天在此說明下他的用法,主要是感覺網上資料有點少。曬一點希望對大家有所幫助。
其實他的使用步驟十分簡單:
1 托入相應的控件(ReportViewer,和 *.rdlc類型的文件)
2 關聯數據
3 加上ajax
1.托入相應的控件
對應拖入2個控件后, rdlc中用拖拉設置報表的布局,並設置數據源。
在rdlc中的設置中 有足夠多的圖表類型選擇
並且可在圖中圓圈處拖入字段,表示系列或者軸內容
2關聯數據
數據源拖入后,用一下方式可查看.rdlc文件。事實上他把布局的所有細節轉化為xml來表示。
所有如果你想要自定義數據源也成為可能
關於自定義數據源
首先你需要在.rdlc中設置好報表的外形。然后你可以在頁面后台指定數據源。

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataClasses1DataContext _dc = new DataClasses1DataContext(); var _data = _dc.zwgxx22(DateTime.Parse("2012-1-1"), DateTime.Parse("2012-8-23")); DataTable dt = new DataTable("dataset"); dt.Columns.Add("MaxUpSpeed",typeof(int)); //列 務必帶上數據類型 否則無法顯示報表內容,並和rdlc上的數據源完全相同 dt.Columns.Add("MaxDownSpeed", typeof(int)); dt.Columns.Add("MinUpSpeed", typeof(int)); dt.Columns.Add("MinDownSpeed", typeof(int)); dt.Columns.Add("AvgUpSpeed", typeof(int)); dt.Columns.Add("Datetime", typeof(DateTime)); dt.Columns.Add("AvgDownSpeed", typeof(int)); foreach (var item in _data) { dt.Rows.Add(new object[] { item .AvgDownSpeed,item.MaxDownSpeed,item.MinDownSpeed, item.MinUpSpeed,item.AvgUpSpeed,item.Datetime,item.MaxUpSpeed}); } ReportDataSource _rpdata = new ReportDataSource("DataSet2", dt); this.ReportViewer1.LocalReport.DataSources.Clear(); //清理原來數據源 this.ReportViewer1.LocalReport.DataSources.Add(_rpdata);//綁定新數據源 ReportViewer1.LocalReport.Refresh();//刷新 } }
注意點:
如果是自定義數據源,在.rdlc中設置的數據源元素需要和后台設置層次對應,即在.rdlc的xml表示中DataSource和dataSet必須對應自定義數據源datatable中的 ReportDataSource _rpdata = new ReportDataSource([DataSource], dt);和 DataTable dt = new DataTable([dataSet]);
如果不是自定義數據源,只要拖拉就能完成報表的顯示:
3 ajax
完成以上操作后需要在reportviewer外頭套一個scriptManager 和updatepanel(必須)。因為他需要用腳本包裝和回發
希望對大家有所幫助吧