.NET環境下水晶報表使用總結 lihonggen0(原作)

來源:互聯網
上載者:User
水晶報表  .NET環境下水晶報表使用總結    lihonggen0(原作)  
  
水晶報表是一個優秀的報表開發工具,本人在開發通用管理系統的時候,所有報表都使用水晶報表,其簡單、易用和強大的功能令筆者倍加喜愛,現將水晶報表使用手記呈現給大家。

一、在使用內建的水晶報表時,請註冊,否則只能使用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 DataSet 設計工具中。

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報表開發的利器。

(此文部分資料來自MSDN)

Author:李洪根

E-MAIL:lihonggen0@163.com



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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