程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> NET環境下水晶報表使用總結

NET環境下水晶報表使用總結

編輯:.NET實例教程

水晶報表是一個優秀的報表開發工具,本人在開發通用管理系統的時候,所有報表都使用水晶報表,其簡單、易用和強大的功能令筆者倍加喜愛,現將水晶報表使用手記呈現給大家。

一、在使用自帶的水晶報表時,請注冊,否則只能使用30次

水晶報表注冊碼
注冊號:6707437608
密碼:AAP5GKS0000GDE100DS

二、使用CrystalReportVIEwer進行預覽

CrystalReportVIEwer控件允許在應用程序中查看 Crystal Report。ReportSource 屬性用於設置要查看哪個報表。該屬性設置之後,報表顯示在查看器中。報表源可以是ReportDocument、報表文件的路徑,也可以是強類型報表。

1.      打開“工具箱”,並將一個 CrystalReportVIEwer 拖到窗體上,我們命名為rptVew。

2.      通過拖放操作將 Windows 窗體查看器調整到希望的大小並將其移動到所需位置。

3.      當運行應用程序時,報表將顯示在查看器中。

三、創建新報表

1.      指向“添加”,單擊“添加新項”。

2.      在“添加新項”對話框中,從“模板”區域選擇 Crystal Report,將報表命名為rptClIEnt,單擊“打開”。

3.      在 Crystal Report 庫中,選擇下列選項之一:

·         使用報表專家 — 指導您完成報表的創建過程,並將您的選擇添加到 Crystal Report Designer。

·         作為空白報表 — 打開 Crystal Report Designer。

·         來自於現有的報表 — 創建新報表,它與指定的另一報表設計相同。

注意   Crystal Report 庫包含許多專家,可以指導您完成數個特定類型報表的創建工作。您可能希望使用專家來創建最初的報表,以確定哪種報表構造方法適合您的需要。

4.      單擊“確定”按鈕。

如果選擇使用“報表專家”,便會出現“報表專家”對話框,並帶有數據資源管理器。為每個文件夾選擇所需數據,完成“報表專家”選項卡界面上的操作,然後單擊“完成”來訪問 Crystal Report Designer 和您的報表

四、是否需要動態設置數據源?

Crystal Reports 通過數據庫驅動程序與數據庫連接。每個驅動程序都被編寫為可處理特定數據庫類型或數據庫訪問技術。

拉和推模型
為了向開發人員提供最靈活的數據訪問方法,Crystal Reports 數據庫驅動程序被設計為可同時提供數據訪問的拉模型和推模型。

拉模型

在拉模型中,驅動程序將連接到數據庫並根據需要將數據“拉”進來。使用這種模型時,與數據庫的連接和為了獲取數據而執行的 SQL 命令都同時由 Crystal Reports 本身處理,不需要開發人員編寫代碼。如果在運行時無須編寫任何特殊代碼,則使用拉模型。

推模型

相反,推模型需要開發人員編寫代碼以連接到數據庫,執行 SQL 命令以創建與報表中的字段匹配的記錄集或數據集,並且將該對象傳遞給報表。該方法使您可以將連接共享置入應用程序中,並在 Crystal Reports 收到數據之前先將數據篩選出來。

四、從 ADO.Net 數據集制作報表

從數據庫創建數據集對象

1.      在項目中新建一個架構文件:

a.      在解決方案資源管理器中,右擊項目名,指向“添加”,然後單擊“添加新項”。

b.      在“添加新項”對話框的“類別”區域,展開文件夾,然後選擇“數據”。

c.      在“模板”區域選擇“數據集”。

d.      接受默認名稱 Dataset1.xsd。

這就創建了一個新的架構文件 (Dataset1.xsd),以後將用它來生成強類型數據集。該架構文件將顯示在 ADO.Net 數據集設計器中。

2.      指定數據庫位置:

a.      在服務器資源管理器中,右擊“數據連接”並選擇“添加連接”。

b.      在“數據鏈接屬性”對話框中,單擊“提供程序”選項卡,然後選擇一個提供程序(例如 Microsoft OLE DB Provider for SQL Server)。

c.      單擊“連接”選項卡,然後指定您的數據庫所在位置。在所需位置輸入服務器和登錄信息。

d.      單擊“確定”按鈕。

此時,您的數據庫及其表和字段就出現在服務器資源管理器的“數據連接”節點下面。

3.      在解決方案資源管理器中,雙擊 Dataset1.xsd (如果它尚不是活動視圖)。

Dataset1.xsd 現在應顯示在“數據集”選項卡中。

>

4.      若要為數據集建立架構,請將需要的表從服務器資源管理器中拖動到 Dataset1.xsd 的“數據集”選項卡上。

5.      單擊“保存 Dataset1.xsd”來保存“Dataset1.xsd”文件。

6.      在“生成”菜單上,單擊“生成”為項目生成數據集對象。

ADO.NET 數據集對象提供數據的描述,從它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“數據庫專家”從 ADO.Net 數據集對象添加表。

請在使用“報表專家”創建新報表時調用“數據庫專家”。或者,要從一個已經使用 ADO.Net 建立好的報表中訪問“數據庫專家”,請在 Report Designer 中右擊,指向“數據庫”,然後單擊“添加/刪除數據庫”。

將報表連接到 ADO.Net 數據集對象

1.      在“數據庫專家”中,展開“項目數據”文件夾。

2.      展開“ADO.Net 數據集”文件夾。

3.      選擇所需數據集對象。

例如,如果當時使用的是從項目“WindowsApplication1”的架構文件“Dataset1.xsd”中生成的數據集對象,則應該選擇“WindowsApplication1.Dataset1”。

4.      選擇要向報表中添加的表,和使用其他數據源一樣。 

五、動態改變數據源的代碼

               Dim dsdataSet As New DataSet()

                Dim oRpt As New rptClient()   '已建立的報表rptClIEnt

                請讀者自行填充數據集dsdataSet

                '使用“報表引擎”對象模型將填充的數據集,傳遞給報表

                oRpt.SetDataSource(dsdataSet.Tables(0))

                ' 將帶有數據的報表對象綁定到 Windows 窗體查看器,rptVew(CrystalReportVIEwer控件)

                rptVew.ReportSource = oRpt

注意   FillDataSet 方法可連接到指定的數據庫,提取數據,然後斷開數據庫連接。如果您希望將數據庫中的多個表添加到報表中,請使用 SQL JOIN 語句將這些表聯接在一起;然後在 FillDataSet 方法中指定一個結果表

六、創建主從報表

在報表中,有許多報表是主從表結構,比如訂單與訂單商品明細,訂單是一個表中的一條記錄,而分錄是另一個表中的多條記錄,兩個表通過一個字段關聯起來,這種報表可利用其分組功能實現,

1.      新建一個工程

2.      往FORM1中添加一個CrystalReportVIEwer控件

3.      在服務噐資源管理器中連接到SQL Server 2000上的Northwind數據庫

4.      添加一個數據集Dataset1,將服務器資源管理器中的Orders和 Order Details加入到數據集中。

5.      添加一個水晶報表,使用報表專家,在項目數據中選擇“ADO.Net數據集”,插入表Orders和 Order Details,“鏈接”中是關聯字段的鏈接,在“字段”中選擇要顯示的主表和明細表的字段,組中選擇分組依據為Orders表OrdersID字段,總計,圖表,選擇(可進行篩選),樣式(可設置報表標題),可自行設置。設置完後,點擊完成。

6.      在報表設計器中調整需要顯示的字段的位置、寬度等。

7.      在窗口中添加代碼。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim oRpt As New CrystalReport1()

        Dim dsdataSet As New Dataset1()

        Dim CN As New Data.SqlClIEnt.SqlConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;passWord=sa")

        CN.Open()

        Dim daOrders As New Data.SqlClIEnt.SqlDataAdapter("select * from orders", CN)

        daOrders.Fill(dsdataSet, "orders")

        Dim daDetails As New Data.SqlClIEnt.SqlDataAdapter("select * from [Order Details]", CN)

        daDetails.Fill(dsdataSet, "Order Details")

        '使用“報表引擎”對象模型將填充的數據集,傳遞給報表

        oRpt.SetDataSource(dsdataSet)

        CrystalReportVIEwer1.ReportSource = oRpt

    End Sub

8、運行程序

七、用程序改變報表中text的文本

代碼如下:
                Dim GetTextObject As TextObject

                ' 按名稱獲取 ReportObject,將其轉換為 TextObject,並返回此對象。

                GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")

                GetTextObject.Text = "XXXX系統"

總結:水晶報表具有非常強大的功能,還可進行導出Word、Excel、RTF等文件,還可生成復雜、漂亮圖表,是進行WEB和Windows報表開發的利器。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved