[SQL][ASP.Net]SSRS和ASP.Net協同運作

摘要:[SQL][ASP.Net]SSRS和ASP.Net協同運作

SSRS報表屬於靜態的展示服務,當我們有需要更改報表所顯示出的資料時就會配合ASP.Net所產生的Web Form來做這部份的工作,也許有些人會直接使用Visual Studio內附的Crystal Report來取代SSRS,如此一來Web Form能夠做更緊密的配合以及更高的控制權,但也有些時候因為決策或是政策的因素必須使用SSRS時,這時候下面這些小訣竅或許能幫你節省一些摸索的時間進而幫你提高一些生產力。

1.參數傳遞

SSRS利用網址來傳遞參數給Web Form是最簡單不過的事情,Web Form利用QueryString來擷取參數我想這算是最基本的基礎功,不會的請搜尋QueryString。

http://WebServer/demo.aspx?Date=12/12/2012&ID=123456

想要保護QueryString的話請參考這篇

Web Form該如何傳遞參數給報表呢?其實一樣的道理。如果你的目的報表需要@Date和@ID這兩個參數,那就是這樣

http://SSRSServer:8080/ReportServer?/report1&rs:Command=Render&Date=12/12/2012&ID=123456

2.避免快取

報表大多為靜態資料之展現,其資料變動性不高,所以預設會做快取以提高其performance;然而有些時候好相反,所以SSRS可以針對報表來設定不要快取。然而當有些時候因為政策或其他的因素ASP.Net程式設計師無法更改或要求更改SSRS上的設定時該怎麼辦?總不能要求使用者每次更改完資料回到報表之後要記得自己refresh才能看到剛剛改過的結果吧?此時我們可以在傳遞參數的時候順便附帶上另一個參數來告訴SSRS這個報表已經是新的必須重新讀取一次而不要送出快取中的資料,如下

http://SSRSServer:8080/ReportServer?/report1&rs:Command=Render&Date=12/12/2012&ID=123456&rc:emissionTime=623423254

加上rc:rmissionTime的用意和這篇一樣,給一個亂數值即可。

3.醞釀中...

(歡迎提供你的小技巧)