RDL(C) Report Design Step by Step 1: DrillThrough Report

來源:互聯網
上載者:User

    前一段時間,發了幾篇關於RDLC報表的隨筆,由於這些隨筆中沒有關於報表設計方面的內容,於是不少網友和我聯絡,問了一些關於報表設計方面的問題,最近準備寫幾篇關於RDLC報表設計的隨筆。

    這篇隨筆主要描述實現鑽研報表的步驟。

    鑽研報表的資料來源應該是兩個具有主子關係的表,在這篇隨筆中以Northwind資料庫中的訂單和訂單明細作為資料來源。

    1、在Visual Studio 2005中建立一個Windows應用程式RDLCDR。

    2、在項目中添加資料來源,資料來源並不一定用來為報表提供資料(當然Visual Studio 2005提供的操作非常方便),主要是在報表設計時可以方便向報表中進列欄位拖曳。添加資料來源意味著在項目中添加了一個資料集Orders.xsd檔案,當報表的資料不是來源於關係型資料庫(如Flat Files或Web Services等)時,我們可以自己定義一個xsd檔案作為報表設計時的資料來源,而在程式中重新為報表載入資料。

    3、在項目中添加報表rptOrder.rdlc,這個報表非常簡單,不具體介紹其設計步驟。報表檔案中將顯示“訂單”的內容,其結構如1所示:


圖1  “訂單”報表的結構

    4、同上,添加報表rptOrderDetails.rdlc,其結構如2所示:


圖2  “訂單明細”報表的結構

    5、在報表rptOrder.rdlc中,選中表控制項的“表詳細資料”行的第一列“=Fields!訂單ID.Value”儲存格,右鍵“屬性”彈出“文字框屬性”對話方塊(3所示),在“導航”選項卡的“超連結操作”中,選中“跳至報表”並在下拉式清單中選擇報表rptOrderDetails,單擊下拉式清單右邊的“參數...”按鈕,進行入圖4所示的設定。


圖3  “文字框屬性”對話方塊


圖4  “跳至報表”參數設定

    6、在報表rptOrderDetails中,使用菜單“報表”  →“報表參數”進入“報表參數”對話方塊,並如5所示設定參數orderid,這個參數主要用於從rptOrder接收傳值。


圖5  報表參數orderid設定(點擊小圖看大圖)

    7、選中報表rptOrderDetail中的表格控制項,右鍵“屬性”,進入“表屬性”對話方塊,在“篩選器”選項卡中,設定如6所示的篩選器。在構造篩選器時,最好使用“編輯運算式”對話方塊產生運算式,除非足夠熟悉,否則,手寫運算式很可能會出現錯誤,例如運算式前面一定要有“=”。


圖6  篩選器設定

    OK,至此,報表設計需要做的內容就完成了,下面是如何為報表提供資料,並顯示在ReportViewer中了。

    8、在WinForm表單上放置ReportViewer控制項,並單擊控制項右上方的三角符號,彈出“ReportViewer 任務”對話方塊中(圖7),選擇報表RDLCDR.rptOrder.rdlc。如果前面提到的資料集檔案(.xsd檔案)是由系統自動產生的話,系統會自動為表單產生DataAdapter、BindingSource和DataSet,刪除之,我們在下面的步驟中手動指定報表的資料來源,否則可能會出現報表不報錯,但報表內無資料的情況。


圖7  ReportViewer任務對話方塊

    9、在表單中使用8所示的代碼為報表和鑽研報表指定資料來源,完成最後的操作。需要注意的是8中的“資料集名稱”必須指定正確,而這個名稱可以從9所示的對話方塊中取得。


圖8  指定資料來源的代碼(點擊小圖看大圖)


圖9  “資料集名稱”的出處

    結果如下:


圖10  “訂單”報表


圖11  “訂單明細”鑽研報表

    Demo下載

    另外,在Web應用程式中,也可以使用此方法建立DrillThrough報表,不過代碼中的Microsoft.Reporting.WinForms.ReportDataSource要改為Microsoft.Reporting.WebForms.ReportDataSource。

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.