前幾天一個偶然的機(jī)會上了odetocode.com,看到幾篇關(guān)于SQL Reporting Services的文章,很有啟發(fā)性,于是結(jié)合了Reporting Services 聯(lián)機(jī)叢書研究了一下,我的困惑算是暫時解決了
。
通過直接傳遞參數(shù)給.aspx頁面(使用ReportViewer控件呈現(xiàn)報表),在.aspx頁面中接受參數(shù)從而呈現(xiàn)所需報表。主要解決方法如下:
1.用vs.net打開ReportViewer這個項目,項目文件夾在你安裝的SQL Reporting Services的相關(guān)文件夾中(見圖1)。
2.打開ReportViewer.cs文件,寫入以下方法(見圖2),然后重新編譯這個項目。
3.新建一個帶參數(shù)的報表文件rdl,具體不詳述,請參考我以前的文章。
4.新建一個.aspx文件,引用編譯好ReportViewer.dll,拖入這個控件到.aspx頁面(見圖3),
可以在ReportViewer的屬性欄中直接設(shè)置報表路徑和報表服務(wù)器路徑及相關(guān)屬性,也可以在.aspx.cs的page_load中用code的方式設(shè)置(見圖4)。
5.為了測試傳遞參數(shù),再建一個htm頁面加入一個鏈接,連接中加入所要傳遞的參數(shù)(見圖5)。
6.在.aspx.cs代碼中接受傳遞來的參數(shù),同時要把接收到參數(shù)傳遞給報表,這就用到了圖2中的方法了(見圖6)。
7.運行后就可以得到你所傳參數(shù)的報表了(見圖7),上面沒有查詢參數(shù)框是因為在ReportViewer屬性的Parameters設(shè)為false了,這樣看起來界面更好一點。
總結(jié)一下:最主要的地方還是在第2步,其實我們可以添加其他類似的方法來達(dá)到自己所要的結(jié)果。如果要傳遞2個或3個值怎么辦,其實方法也是一樣的,只要在報表文件中設(shè)置2個或3個參數(shù)就可以了。另外補(bǔ)充一下關(guān)于導(dǎo)出打印的問題,其實可以在.cs代碼中直接設(shè)置導(dǎo)出的格式,比如 this.ReportViewer1.Format=“pdf“;這樣頁面就直接會用acrobat打開的。
以上純屬個人使用經(jīng)驗,若有不對的地方請大家指正,也歡迎大家一起討論