ReportViewer報表控件解析與使用(原)


ReportViewer是vs自帶控件。今天在此說明下他的用法,主要是感覺網上資料有點少。曬一點希望對大家有所幫助。

其實他的使用步驟十分簡單:

1 托入相應的控件(ReportViewer,和 *.rdlc類型的文件)

2 關聯數據

3 加上ajax

 

 

1.托入相應的控件

對應拖入2個控件后, rdlc中用拖拉設置報表的布局,並設置數據源。

在rdlc中的設置中 有足夠多的圖表類型選擇

 

並且可在圖中圓圈處拖入字段,表示系列或者軸內容

 

2關聯數據

數據源拖入后,用一下方式可查看.rdlc文件。事實上他把布局的所有細節轉化為xml來表示。

所有如果你想要自定義數據源也成為可能

 

 

關於自定義數據源

首先你需要在.rdlc中設置好報表的外形。然后你可以在頁面后台指定數據源。

View Code
 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(必須)。因為他需要用腳本包裝和回發

 

 

希望對大家有所幫助吧

 

 


免責聲明!

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



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