水晶報表資料的繫結

2021-04-24 13:09:43 字數 1515 閱讀 2420

設計水晶報表

在.net

中,微軟提供了一種優秀的報表工具,水晶報表。水晶報表提供一種視覺化的報表設計工具,將設計和執行有效地分離開,使資料包表的輸出更加容易。

先看看報表設計,vs2005提供了嚮導式的水晶報表開發工具,首先設計時需要指定報告資料**,水晶報表允許使用.net強型別資料集或者是實體物件作為資料來源

(按1:令我十分懊惱得是,作為設計時需要使用的資料來源需要和報表本身在同乙個程式集內才行,而一般地,報表個人習慣往往放在介面層,而強型別資料集或者是實體物件都放在業務實體層....,不明白有沒有其他的方法可以解決這個「雞肋」,否則就只能把報表放到實體層去了)

按照嚮導一步步地完成報表之後,我們就可以在專案中使用剛才完成的報表了

(按2:如果使用實體物件作為資料來源的話,實體的外來鍵物件是無法在水晶報表中新增顯示的,有高人知道的話,請指點我)

瀏覽水晶報表

.net提供了乙個瀏覽報表的控制項crystalreportviewer

用於預覽水晶報表,

winform

和webform

下使用的控制項分別在命名空間

crystaldecisions.windows.forms

和crystaldecisions.web

下,用法基本一致。

crystalreportviewer

的公開屬性

名稱

說明

displaygrouptree

獲取或設定樹檢視是否隱藏。

displaystatusbar

獲取或設定狀態列是否隱藏。

display*******

獲取或設定工具欄是否隱藏。

reportsource

獲取或設定察看器的報表**

selectionformula

獲取或設定察看器的記錄選擇公式

crystalreportviewer

的公開方法

名稱

說明

refreshreport()

馬上重新整理控制項中顯示的報表

為了將報表在察看器中顯示我們剛才建立的報表,假定報表名為

mycrystal.rpt

,我們需要將該報表設定資料後繫結到報表察看器的報表源上。報表源

reportsource屬性

接受乙個

reportdocument

物件作為報表源,我們剛才建立的

mycrystal

實際上也是繼承至

reportdocument

類的乙個子類。

這樣察看的rpt檔案需要是在程式集編譯期能夠訪問的到的。有些時候,我們也需要在之後動態地載入rpt檔案以顯示

webform下的使用有些稍稍不同

為水晶報表(含子報表)繫結資料

本demo為 提供。我們以push模式為例,既是push,就必須先構造出水晶報表 骨架 資料集,在專案新增一資料集,我這裡在資料集裡面新增兩個datatable,乙個maintable 主報表用 乙個subtable 子報表用 在maintable新增兩列 id和desc,其中id設為自增列,如圖示...

為水晶報表(含子報表)繫結資料

本demo為 提供。我們以push模式為例,既是push,就必須先構造出水晶報表 骨架 資料集,在專案新增一資料集,我這裡在資料集裡面新增兩個datatable,乙個maintable 主報表用 乙個subtable 子報表用 在maintable新增兩列 id和desc,其中id設為自增列,如圖示...

水晶報表匯出資料

using system using system.collections using system.configuration using system.data using system.linq using system.web using system.web.security using ...