摘要:水晶報表是一套完整的web報表制作解決方案,用于處理數據庫,幫助用戶分析和解釋重要信息,如:制作網絡報表,存取,分析,報告,分享資料等。該文將報表制作功能與Web與Windows應用程序緊密結合,利用各種資源,建立高品質的數據報告,具有快速和可擴充的報表處理功能,使客戶能夠很好的理解與分析數據。
關鍵詞:水晶報表;Crytal Report Viewer控件;數據庫;VB.NeT
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)05-1102-02
Programming Analyse of Crystal Reports based on VB.Net
LI Bing
(Yunnan Province, Simao Teachers College, Simao 665000,China)
Abstract: Crystal Reports is a complete set of statements to produce web solutions for dealing with the database to help users analyze and interpret important information, such as: the production of statements of the network, access, analyze, report and share information. It will feature the production of statements with the Web and Windows applications closely integrated use of resources, the establishment of high-quality data reporting, and rapid expansion in its report processing functions, enabling customers to a very good understanding and analysis of the data.
Key words: crystal reports; crytalreport viewer control; database; VB.Net
1 引言
水晶報表[1]是一種強大的報表處理工具,幾乎可以從任何數據源生成所需要的報表。內置報表專家在所生成報表和完成一般的報表任務過程中,會一步一步地指導用戶進行操作。報表專家通過公式、交叉表、子報表和設置條件格式來幫助表現數據的實際意義,揭示可能被隱藏掉的重要關系。如果文字和數字確實不夠充分,則用地理地圖和圖形進行形象的信息交流。其可以用于各種各樣的格式報表發布,包括用 Microsoft 的 Word 和 Excel 發布、通過電子郵件甚至 Web 發布。高級的 Web 報表功能允許工作組中的其他成員在他們自己的 Web 瀏覽器中查看或更新共享報表。
Visual Studio.NET[2]中集成的Crystal Reports 9(簡化版本)賦予.NET平臺創建交互式的、高質量展示內容的能力,可以在Web平臺和Windows平臺上呈現報表,甚至將Crystal報表在Web服務器上發布,下面我們就介紹Visual Studio.NET平臺下用Visual Basic語言進行水晶報表制作的主要方法及其步驟。
2 報表模塊操作流程:
報表流程如圖1。
3 具體實驗步驟及結果
3.1 數據源的設定
1) 拉模型:在拉模型中,驅動程序將連接到數據庫并根據需要將數據“拉”進來,使用這種模型時,與數據庫連接和為了獲取數據而執行的SQL命令都同時是由Crystal Reports本身處理,而不需要開發人員編寫代碼。
2) 推模型:推模型需要開發人員編寫代碼來連接到數據庫,并執行SQL命令以創建與報表中的字段所匹配的記錄集或數據集,并且將所選擇的對象傳遞給報表。(此模型相對比較靈活,安全性比較高,因此一般采用此模型)
3.2 連接數據源(ADO.NET)
3.2.1 從數據源創建數據集對象
1) 在項目中新建一個數據集文件(Dataset1.xsd)。
單擊“項目”項,選擇“添加”按鈕,在彈出的對話框中選擇“Dataset.xsd”,名字為默認名:Dataset1.xsd。
2) 指定數據庫位置(利用服務器資源管理器創建數據源)
單擊[數據]選擇添[添加新數據項]如圖2所示;
單擊下一步,選擇要加入的數據源(本例中以酒店管理的一個數據庫(JDGL)為例),單擊”“下一步”,選擇數據庫的連接方式,一般采用ADO.NET 數據集,單擊“下一步”,選擇所要輸出的表(客房入住單),并添加所需要的字段,單擊完成,這樣數據集就創建好了。
3.2.2 將報表連接到ADO.NET 數據集
1) 在項目中添加新項水晶報表項并默認名為:Crystal Report1.rpt[2]或者也可在解決資源管理器中,右擊項目名稱,在快捷菜單中選擇“添加”|“添加新項”命令。在彈出的“添加新項”對話框中,展開“類別”列表框的文件夾,然后單擊“實用工具”節點。在“模板”列表框選擇Crystal Report1,在這里創建名稱為:Crystal Report1.rpt
2) 單擊[數據]項,選擇[顯示數據源],在數據源選項區域中選擇所需數據集對象。
單擊“打開”按鈕,將彈出的“Crystal Report庫”對話框。在“Crystal Report庫”對話框中,有實用報表專家(指導完成報表創建的過程,并將所選擇的專家添加到Crystal Report Designer中),作為空報表項(用于打開Crystal Report Designer),來自與現有的報表(創建新報表,它與指定的另一報表設計相同)等幾項,這里在“Crystal Report 庫”對話框中選擇“實用報表專家”單選按鈕,并將“選擇專家”設置為標準。在右側列表窗口中選擇已經添加的數據源,進行數據選定。
3) 選擇要向報表中添加的表,并設計報表界面,如圖3所示。
在報表設計界面中含有,報表頁眉(主要設計報表頁眉的顯示樣式),頁眉(主要設計報表開頭的樣式),詳細資料(是設計的核心區域,主要是設計報表中各種數據的顯示方式),報表頁腳(是設置對“詳細資料”部分中數據統計相關的數據),頁腳(主要設置報表頁腳的顯示樣等功能)等功能,可以通過拖放操作將所需要的字段拖到“詳細資料”區,同時會在“報表頁眉”中同步增加這兩個字段來說明,從而細化報表設計,是報表更加全面美觀。
在這里,我們增加了一個文本標題“客房入住信息”,通過“頁腳”設置增加了頁碼,并對各個字段做了如圖3的調整。
3.3 創建報表顯示和打印窗體
1) 打開工具箱,并將一個crytalreportviewer控件拖到窗體上,設置Dock屬性為Fill。通過CrystalReportViewer控件的Reportsource屬性設置要查看那個表,該屬性設置后,將使報表顯示在查看器中。報表源可以是ReportDocument或報表文件的路徑,也可以是強類型報表。接下來,將報表綁定到crytalreportviewer控件。
2) 通過拖放操作將crytalreportviewer控件調整到希望大小并將其移到所需要的位置,如
3.4 添加動態改變數據源的代碼
Private Sub CrystalReportViewer1_Load(……) Handles CrystalReportViewer1.Load
‘連接數據源
Dim conn As String = \"Data Source = localhost;Initial Catalog = MyHotel; Integrated Security=True\"
‘定義連接項
Dim objconn1 As New SqlConnection(conn)
‘定義數據集
Dim objdset1 As New DataSet
Dim mydatatable As DataTable = New DataTable()
Dim ad As New SqlDataAdapter
Dim rpt As New CrystalReport1
‘選擇要顯示的數據項
Dim strsql1 As String = \"select * from 酒店入住單“
‘打開數據連接
objconn1.Open()
Dim objAdap As New SqlClient.SqlDataAdapter(strsql1, conn)
sqlconnection1.Close()
objset1.Clear()
‘向報表添加數據
objAdap.Fill(objset1, \"a\")
rpt.SetDataSource(objset1.Tables(\"a\"))
‘刷新報表
CrystalReportViewer1.Refresh()
CrystalReportViewer1.ReportSource = rpt
objconn1.Close()
objdset1.Clear()
End Sub
4 運行結果
圖4為水晶報表運行圖。
5 小結
在Visual Basic. Net開發平臺下可以加載水晶控件Crystal Report Viewer,通過Crystal Report Viewer控件的Report Source屬性設置要查看那個表,通過“數據源”連接項連接數據源,利用水晶報表中的“報表專家”設計水晶報表,調整報表數據輸出項,從而個應戶顯示出基本的數據統計,幫助用戶分析和解釋重要信息,在應用程序和web開發人員可以節省開發時間并滿足用戶的需求。
參考文獻:
[1] Crystal Reports聯機幫準[k].Business Objects SA,2008.
[2] 豈興名.Visual Basic.NET項目考發寶典[M].北京:電子工業出版社,2007:311-325.
[3] 郭斌,銀華強.Visual Basic2005數據庫通用模塊開發與系統移植[M].北京:清華大學出版社.2007:195-198.