2011年6月18日 星期六

ReportViewe範例PART2如何Drillthrough之二

繼上一篇ReportViewe範例PART2如何Drillthrough之一完成rdl後,下一個步驟為使用asp.NET把rdl掛在web網頁上。
第一個步驟就是把rdl轉成rdlc。
在BIDS中只要把副檔名從rdl改成rdlc即可。
改完後就放入vs2010中。
第二個步驟就是拉畫面,拉一個reportviewer、button、textbox與scriptmananger。
如果嫌畫面太醜,可以利用table來排版以及使用css來美化你的頁面。
我在這個網站找到給table使用的css,看起來效果還不錯。
第三個步驟就是去獲得rdlc要的資料,第一層和要做Drillthrough的讀取資料都要寫在這邊,這部份我把它寫成一個class,也就是三層架構的商業邏輯層(因為我是參考大陸工程師的想法,事實上我覺得這個class比較像資料存取層)。

有了資料來源後,就是要把資料跟rdlc做結合。
第四個步驟就是要結合資料跟rdlc並且把它顯示出來
這部份我自幾寫了一個class,以簡化在codebehind寫的程式。
上面的部份是給第一層報表使用的,而下面的部份則是要給Drillthrough的報表使用的。差別在於第一個報表參數的類型。
這個部份我使用overload的技巧來簡化我的程式。
第五個步驟就是在codebehind寫的顯示報表的程式,重點在於要設定Drillthrough的事件,並在Drillthrough的事件中加上Drillthrough時要顯示報表的方法。

在Drillthrough事件中要記得指定傳遞的參數。
程式碼如下:
string city = localReport.OriginalParametersToDrillthrough[0].Values[0].ToString();
完成第五個步驟後,就可以執行程式。
執行的結果為下圖:
我們看到桃園縣的筆數是六筆,如果我們想要知道是哪六筆,可以接著點一下桃園縣就會顯示出桃園縣六筆客戶的清單了。

沒有留言:

張貼留言