.NET環(huán)境下水晶報表使用總結 lihonggen0(原作)
發(fā)表時間:2024-06-17 來源:明輝站整理相關軟件相關文章人氣:
[摘要].NET環(huán)境下水晶報表使用總結lihonggen0(原作)水晶報表是一個優(yōu)秀的報表開發(fā)工具,本人在開發(fā)通用管理系統(tǒng)的時候,所有報表都使用水晶報表,其簡單、易用和強大的功能令筆者倍加喜愛,現(xiàn)將水晶報表使用手記呈現(xiàn)給大家。 一、在使用自帶的水晶報表時,請注冊,否則只能使用30次水晶報表注冊碼注冊號:6...
.NET環(huán)境下水晶報表使用總結lihonggen0(原作)
水晶報表是一個優(yōu)秀的報表開發(fā)工具,本人在開發(fā)通用管理系統(tǒng)的時候,所有報表都使用水晶報表,其簡單、易用和強大的功能令筆者倍加喜愛,現(xiàn)將水晶報表使用手記呈現(xiàn)給大家。
一、在使用自帶的水晶報表時,請注冊,否則只能使用30次
水晶報表注冊碼
注冊號:6707437608
密碼:AAP5GKS0000GDE100DS
二、使用CrystalReportViewer進行預覽
CrystalReportViewer控件允許在應用程序中查看 Crystal Report。ReportSource 屬性用于設置要查看哪個報表。該屬性設置之后,報表顯示在查看器中。報表源可以是ReportDocument、報表文件的路徑,也可以是強類型報表。
1.打開“工具箱”,并將一個 CrystalReportViewer 拖到窗體上,我們命名為rptVew。
2.通過拖放操作將 Windows 窗體查看器調整到希望的大小并將其移動到所需位置。
3.當運行應用程序時,報表將顯示在查看器中。
三、創(chuàng)建新報表
1.指向“添加”,單擊“添加新項”。
2.在“添加新項”對話框中,從“模板”區(qū)域選擇 Crystal Report,將報表命名為rptClient,單擊“打開”。
3.在 Crystal Report 庫中,選擇下列選項之一:
· 使用報表專家 — 指導您完成報表的創(chuàng)建過程,并將您的選擇添加到 Crystal Report Designer。
· 作為空白報表 — 打開 Crystal Report Designer。
· 來自于現(xiàn)有的報表 — 創(chuàng)建新報表,它與指定的另一報表設計相同。
注意 Crystal Report 庫包含許多專家,可以指導您完成數(shù)個特定類型報表的創(chuàng)建工作。您可能希望使用專家來創(chuàng)建最初的報表,以確定哪種報表構造方法適合您的需要。
4.單擊“確定”按鈕。
如果選擇使用“報表專家”,便會出現(xiàn)“報表專家”對話框,并帶有數(shù)據(jù)資源管理器。為每個文件夾選擇所需數(shù)據(jù),完成“報表專家”選項卡界面上的操作,然后單擊“完成”來訪問 Crystal Report Designer 和您的報表
四、是否需要動態(tài)設置數(shù)據(jù)源?
Crystal Reports 通過數(shù)據(jù)庫驅動程序與數(shù)據(jù)庫連接。每個驅動程序都被編寫為可處理特定數(shù)據(jù)庫類型或數(shù)據(jù)庫訪問技術。
拉和推模型
為了向開發(fā)人員提供最靈活的數(shù)據(jù)訪問方法,Crystal Reports 數(shù)據(jù)庫驅動程序被設計為可同時提供數(shù)據(jù)訪問的拉模型和推模型。
拉模型
在拉模型中,驅動程序將連接到數(shù)據(jù)庫并根據(jù)需要將數(shù)據(jù)“拉”進來。使用這種模型時,與數(shù)據(jù)庫的連接和為了獲取數(shù)據(jù)而執(zhí)行的 SQL 命令都同時由 Crystal Reports 本身處理,不需要開發(fā)人員編寫代碼。如果在運行時無須編寫任何特殊代碼,則使用拉模型。
推模型
相反,推模型需要開發(fā)人員編寫代碼以連接到數(shù)據(jù)庫,執(zhí)行 SQL 命令以創(chuàng)建與報表中的字段匹配的記錄集或數(shù)據(jù)集,并且將該對象傳遞給報表。該方法使您可以將連接共享置入應用程序中,并在 Crystal Reports 收到數(shù)據(jù)之前先將數(shù)據(jù)篩選出來。
四、從 ADO.NET 數(shù)據(jù)集制作報表
從數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)集對象
1.在項目中新建一個架構文件:
a.在解決方案資源管理器中,右擊項目名,指向“添加”,然后單擊“添加新項”。
b.在“添加新項”對話框的“類別”區(qū)域,展開文件夾,然后選擇“數(shù)據(jù)”。
c.在“模板”區(qū)域選擇“數(shù)據(jù)集”。
d.接受默認名稱 Dataset1.xsd。
這就創(chuàng)建了一個新的架構文件 (Dataset1.xsd),以后將用它來生成強類型數(shù)據(jù)集。該架構文件將顯示在 ADO.NET 數(shù)據(jù)集設計器中。
2.指定數(shù)據(jù)庫位置:
a.在服務器資源管理器中,右擊“數(shù)據(jù)連接”并選擇“添加連接”。
b.在“數(shù)據(jù)鏈接屬性”對話框中,單擊“提供程序”選項卡,然后選擇一個提供程序(例如 Microsoft OLE DB Provider for SQL Server)。
c.單擊“連接”選項卡,然后指定您的數(shù)據(jù)庫所在位置。在所需位置輸入服務器和登錄信息。
d.單擊“確定”按鈕。
此時,您的數(shù)據(jù)庫及其表和字段就出現(xiàn)在服務器資源管理器的“數(shù)據(jù)連接”節(jié)點下面。
3.在解決方案資源管理器中,雙擊 Dataset1.xsd (如果它尚不是活動視圖)。
Dataset1.xsd 現(xiàn)在應顯示在“數(shù)據(jù)集”選項卡中。
4.若要為數(shù)據(jù)集建立架構,請將需要的表從服務器資源管理器中拖動到 Dataset1.xsd 的“數(shù)據(jù)集”選項卡上。
5.單擊“保存 Dataset1.xsd”來保存“Dataset1.xsd”文件。
6.在“生成”菜單上,單擊“生成”為項目生成數(shù)據(jù)集對象。
ADO.NET 數(shù)據(jù)集對象提供數(shù)據(jù)的描述,從它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“數(shù)據(jù)庫專家”從 ADO.NET 數(shù)據(jù)集對象添加表。
請在使用“報表專家”創(chuàng)建新報表時調用“數(shù)據(jù)庫專家”;蛘,要從一個已經(jīng)使用 ADO.NET 建立好的報表中訪問“數(shù)據(jù)庫專家”,請在 Report Designer 中右擊,指向“數(shù)據(jù)庫”,然后單擊“添加/刪除數(shù)據(jù)庫”。
將報表連接到 ADO.NET 數(shù)據(jù)集對象
1.在“數(shù)據(jù)庫專家”中,展開“項目數(shù)據(jù)”文件夾。
2.展開“ADO.NET 數(shù)據(jù)集”文件夾。
3.選擇所需數(shù)據(jù)集對象。
例如,如果當時使用的是從項目“WindowsApplication1”的架構文件“Dataset1.xsd”中生成的數(shù)據(jù)集對象,則應該選擇“WindowsApplication1.Dataset1”。
4.選擇要向報表中添加的表,和使用其他數(shù)據(jù)源一樣。
五、動態(tài)改變數(shù)據(jù)源的代碼
Dim dsdataSet As New DataSet()
Dim oRpt As New rptClient() '已建立的報表rptClient
請讀者自行填充數(shù)據(jù)集dsdataSet
'使用“報表引擎”對象模型將填充的數(shù)據(jù)集,傳遞給報表
oRpt.SetDataSource(dsdataSet.Tables(0))
' 將帶有數(shù)據(jù)的報表對象綁定到 Windows 窗體查看器,rptVew(CrystalReportViewer控件)
rptVew.ReportSource = oRpt
注意 FillDataSet 方法可連接到指定的數(shù)據(jù)庫,提取數(shù)據(jù),然后斷開數(shù)據(jù)庫連接。如果您希望將數(shù)據(jù)庫中的多個表添加到報表中,請使用 SQL JOIN 語句將這些表聯(lián)接在一起;然后在 FillDataSet 方法中指定一個結果表
六、創(chuàng)建主從報表
在報表中,有許多報表是主從表結構,比如訂單與訂單商品明細,訂單是一個表中的一條記錄,而分錄是另一個表中的多條記錄,兩個表通過一個字段關聯(lián)起來,這種報表可利用其分組功能實現(xiàn),
1.新建一個工程
2.往FORM1中添加一個CrystalReportViewer控件
3.在服務噐資源管理器中連接到SQL SERVER 2000上的Northwind數(shù)據(jù)庫
4.添加一個數(shù)據(jù)集Dataset1,將服務器資源管理器中的Orders和 Order Details加入到數(shù)據(jù)集中。
5.添加一個水晶報表,使用報表專家,在項目數(shù)據(jù)中選擇“ADO.NET數(shù)據(jù)集”,插入表Orders和 Order Details,“鏈接”中是關聯(lián)字段的鏈接,在“字段”中選擇要顯示的主表和明細表的字段,組中選擇分組依據(jù)為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")
'使用“報表引擎”對象模型將填充的數(shù)據(jù)集,傳遞給報表
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系統(tǒng)"
總結:水晶報表具有非常強大的功能,還可進行導出WORD、EXCEL、RTF等文件,還可生成復雜、漂亮圖表,是進行WEB和WINDOWS報表開發(fā)的利器。
(此文部分資料來自MSDN)
Author:李洪根
E-MAIL:lihonggen0@163.com