




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6 6章 水晶數(shù)據(jù)報(bào)表設(shè)計(jì)大綱 水晶報(bào)表的數(shù)據(jù)傳遞模型 自定義水晶報(bào)表模板、報(bào)表的輸出與打印 帶統(tǒng)計(jì)圖表的報(bào)表6.1 6.1 水晶報(bào)表概述VB.NET開發(fā)應(yīng)用程序時(shí),經(jīng)常需要生成報(bào)表,一般使用水晶報(bào)表實(shí)現(xiàn)。水晶報(bào)表(Crystal Reports)是一個(gè)優(yōu)秀的報(bào)表開發(fā)工具,用于處理數(shù)據(jù)庫,幫助用戶分析和解釋重要信息。水晶報(bào)表從1993開始就稱為Visual Studio的一部分,并且現(xiàn)在已經(jīng)稱為VS.NET中的標(biāo)準(zhǔn)報(bào)表創(chuàng)建工具。Crystal Reports for Visual Studio可以連接到幾乎所有的數(shù)據(jù)源,比如:DataSet。6.1 6.1 水晶報(bào)表概述使用水晶報(bào)表設(shè)計(jì)的報(bào)表
2、又稱為RDLC報(bào)表。在VS.NET2005之前,SQL Server Reporting Services中已經(jīng)提供了一種被稱為報(bào)表定義語言(Report Definition Language, RDL)的語言;在VS.NET 2005中,Microsoft提供了針對(duì)這種報(bào)表的設(shè)計(jì)器,并提供了在WinForm和WebForm中使用這種報(bào)表的能力。Microsoft將這種報(bào)表的后綴定為RDLC,RDL仍然是Report Definition Language的縮寫,C代表Client-Side Processing,凸顯了它的客戶端處理能力。水晶報(bào)表具有如下的特點(diǎn):(1) 具有簡單易用的控件,
3、特別是Table控件,非常方便字段在報(bào)表上的排列;(2) 靈活的可定制性,用XML來描述一個(gè)報(bào)表相關(guān)數(shù)據(jù);(3) 高度可編程性,不需要報(bào)表文件,通過代碼就可以實(shí)現(xiàn)報(bào)表生成、預(yù)覽和打印等一系列操作;(4) 導(dǎo)出的Excel文件格式非常完美,任何其它報(bào)表在這方面都不能與之比擬,而且并不需要安裝Excel。6.1.1 6.1.1 水晶報(bào)表數(shù)據(jù)傳遞模型6.1.2 6.1.2 使用已有的報(bào)表模板默認(rèn)情況下已有的報(bào)表模板在路徑“C:Program FilesMicrosoft Visual Studio 版本號(hào)Crystal ReportsSampleszh-chsReports”中的Feature Ex
4、amples和General Business目錄下(安裝的時(shí)候,由于設(shè)定安裝路徑的不同,上面的路徑會(huì)不同,可以利用搜索功能查找模板文件)。這里使用Feature Examples目錄下的Hierarchical Grouping.rpt報(bào)表模板。使用已有的報(bào)表模板案例名稱:使用已有的報(bào)表模板工程名稱:Proj6-1Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dir As String d
5、ir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path + Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + Hierarchical Grouping.rpt End SubEnd Class6.2 6.2 創(chuàng)建自定義報(bào)表在數(shù)據(jù)庫應(yīng)用程序中,不同的數(shù)據(jù)庫需要顯示不同的字段,即使是同一數(shù)據(jù)庫,不同的工程需要顯示的順序也是不一樣的,所以一般
6、都需要自定義報(bào)表。6.2.1 6.2.1 創(chuàng)建報(bào)表模板新建基于Windows的工程Proj6-2,在“解決方案管理器”中,右擊項(xiàng)目名,在“項(xiàng)目”菜單中選擇“新建項(xiàng)”,選擇“Crystal報(bào)表” 接著彈出對(duì)話框“Crystal Reports庫” 在選項(xiàng)組“創(chuàng)建新Crystal Report文檔”中,有3個(gè)選項(xiàng):1. 使用報(bào)表向?qū)В河袑?duì)話框指導(dǎo)完成報(bào)表的創(chuàng)建,并將選擇保存到報(bào)表設(shè)計(jì)器中;2. 作為空白報(bào)表:對(duì)報(bào)表不做任何設(shè)置;3. 來自于現(xiàn)有的報(bào)表:用目前設(shè)計(jì)好的報(bào)表作為模板,重新設(shè)計(jì)報(bào)表。在選項(xiàng)組“選擇專家”中包含三種不同的報(bào)表專家,可以指導(dǎo)完成特定類型報(bào)表的創(chuàng)建工作。有3個(gè)選項(xiàng):1. 標(biāo)準(zhǔn):
7、指導(dǎo)如何選擇數(shù)據(jù)源和連接數(shù)據(jù)庫表。還可以幫助用戶添加字段以及分組、統(tǒng)計(jì)、圖表以及排序。2. 交叉表:報(bào)表中的數(shù)據(jù)作為交叉表對(duì)象顯示,并指導(dǎo)自定義格式。3. 郵件標(biāo)簽:允許用戶格式化報(bào)表,目的是打印在任意尺寸的郵件標(biāo)簽上。分別選擇“使用報(bào)表向?qū)А焙汀皹?biāo)準(zhǔn)”選項(xiàng),下一步出現(xiàn)對(duì)話框“數(shù)據(jù)” 對(duì)話框“數(shù)據(jù)”為要?jiǎng)?chuàng)建的報(bào)表選擇數(shù)據(jù)源,列表中包括如下的選項(xiàng):1. 項(xiàng)目數(shù)據(jù):顯示當(dāng)前項(xiàng)目的數(shù)據(jù)源列表和ADO.NET的數(shù)據(jù)源;2. 當(dāng)前連接:顯示當(dāng)前連接到數(shù)據(jù)源的列表;3. 收藏夾:顯示“收藏夾”列表中維護(hù)的數(shù)據(jù)源列表。4. 歷史記錄:顯示最新5條使用過的數(shù)據(jù)源;5. 創(chuàng)建新連接:顯示可以創(chuàng)建的所有數(shù)據(jù)源,取
8、決于安裝過程中選定的數(shù)據(jù)訪問組件。在列表中選擇“創(chuàng)建新連接”中選擇“OLE DB(ADO)”文件夾,對(duì)話框“OLE DB(ADO)” 選擇“Microsoft OLE DB Provider for SQL Server”并進(jìn)入下一步,將要連接的數(shù)據(jù)庫信息填寫到對(duì)話框中。如果連接到本地的SQL Server,則服務(wù)器名字為“(local)”,用戶名和密 碼 分 別 為 “ s a ” 和“sa123”,并選擇要連接的數(shù)據(jù)庫為Sales。 單擊按鈕“完成”返回到“標(biāo)準(zhǔn)報(bào)表創(chuàng)建向?qū)А睂?duì)話框,依次點(diǎn)開文件夾,找到連接的數(shù)據(jù),并將表“grade”添加到右邊的選定列表中,如圖6-8所示 將表“grade
9、”中的所有字段都選中,并添加要顯示的字段列表中。下面還有兩個(gè)配置的窗口,分別是分組和篩選的對(duì)話框,因?yàn)檫@里不需要設(shè)置,所以都直接跳到最后一步“報(bào)表樣式”,可選的樣式有10個(gè),這里選擇“標(biāo)準(zhǔn)”樣式。創(chuàng)建好的報(bào)表將加載到主窗口中, 默認(rèn)的報(bào)表設(shè)計(jì)界面包括5部分:1. 報(bào)表頁眉,設(shè)定全部頁面的頁眉顯示樣式;2. 頁眉,設(shè)定當(dāng)前頁的開頭的顯示樣式;3. 詳細(xì)資料,設(shè)定各種數(shù)據(jù)的顯示方式;4. 報(bào)表頁腳,設(shè)置對(duì)詳細(xì)資料中數(shù)據(jù)統(tǒng)計(jì)相關(guān)的數(shù)據(jù);5. 頁腳,設(shè)置當(dāng)前頁最后的顯示樣式。6.2.2 6.2.2 在工程中添加報(bào)表模板要在Windows窗體上顯示報(bào)表,需要添加CrystalReportViewer控件
10、,按照以前的方法,在Form.Load方法中添加控件和報(bào)表的連接代碼。案例名稱:在工程中添加報(bào)表模板工程名稱:Proj6-2 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dir As String dir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path +
11、Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + CrystalReport1.rpt End Sub為了創(chuàng)建良好的用戶體驗(yàn),需要在程序中添加報(bào)表的驗(yàn)證信息。 Imports CrystalDecisions.CrystalReports.EngineImports CrystalDecisions.SharedImports System.CollectionsPublic Class Form1 Private Sub SetDBLogonForReport(ByVal myConnectionInf
12、o As ConnectionInfo) Dim myTableLogOnInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos myTableLogOnInfo.ConnectionInfo = myConnectionInfo Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.Even
13、tArgs) Handles MyBase.Load Dim dir As String dir = System.Environment.CurrentDirectory Dim path = dir.Substring(0, dir.LastIndexOf() - 3) MessageBox.Show(path + Hierarchical Grouping.rpt) CrystalReportViewer1.ReportSource = path + CrystalReport1.rpt Dim myConnectionInfo As ConnectionInfo = New Conne
14、ctionInfo() myConnectionInfo.ServerName = (local) myConnectionInfo.DatabaseName = sales myConnectionInfo.IntegratedSecurity = False myConnectionInfo.UserID = sa myConnectionInfo.Password = sa123 SetDBLogonForReport(myConnectionInfo) End SubEnd Class6.2.3 6.2.3 報(bào)表數(shù)據(jù)導(dǎo)出與打印水晶報(bào)表支持將報(bào)表導(dǎo)出的格式包括:1. Adobe Acro
15、bat(.pdf);2. Crystal Reports(.rpt);3. Rich Text Format (.rtf);4. Microsoft Word (.doc);5. Microsoft Excel (.xls);6. HTML 3.2 (.htm);7. HTML 4.0 (.htm)。數(shù)據(jù)導(dǎo)出有兩種模式:1.拉模型。通過指定的數(shù)據(jù)驅(qū)動(dòng)程序,來進(jìn)行數(shù)據(jù)庫的連接和提取數(shù)據(jù)。基本上,不需要開發(fā)人員編寫代碼。2. 推模型。需要開發(fā)人員自己編寫代碼來處理數(shù)據(jù)庫連接,填充DataSet,并傳遞到報(bào)表中。如果后臺(tái)數(shù)據(jù)庫需要認(rèn)證,則應(yīng)提供登錄信息,這里需要編寫代碼來實(shí)現(xiàn);如果后臺(tái)數(shù)據(jù)庫是Acc
16、ess,則一般不需要提供登陸信息。案例名稱:數(shù)據(jù)導(dǎo)出和打印工程名稱:Proj6-3 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CrystalReportViewer1.ExportReport() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Clic
17、k CrystalReportViewer1.PrintReport() End Sub6.3 6.3 帶統(tǒng)計(jì)圖表的報(bào)表報(bào)告主要的功能是在兩個(gè)方面1. 方便的數(shù)據(jù)導(dǎo)出與打印;2. 數(shù)據(jù)統(tǒng)計(jì)與分析功能。水晶報(bào)表是目前最強(qiáng)大的統(tǒng)計(jì)分析工具之一,利用它可以制作出功能豐富的報(bào)表。新建基于Windows的工程Proj6-4,添加建立好的水晶報(bào)表:“CrystalReport1.rpt”,同時(shí)添加CrystalReportViewer控件,并通過“智能任務(wù)”對(duì)話框設(shè)置“在父容器中??俊保@樣控件就可以正好填充滿整個(gè)Form窗體,如圖6-16所示。6.3 6.3 帶統(tǒng)計(jì)圖表的報(bào)表執(zhí)行結(jié)果小結(jié)本章介紹了水晶報(bào)
18、表的設(shè)計(jì)與開發(fā)。對(duì)于水晶報(bào)表更深入的學(xué)習(xí),可以參考專門的水晶報(bào)表制作資料。本章側(cè)重如何在VB.NET中使用水晶報(bào)表,介紹了如何使用現(xiàn)有的模板、如何實(shí)現(xiàn)報(bào)表的導(dǎo)出與打印以及帶統(tǒng)計(jì)圖表的報(bào)表的設(shè)計(jì)方法。習(xí)題一、選擇題1水晶報(bào)表的特點(diǎn)包括_A. 具有簡單易用的控件,特別是Table控件,非常方便字段在報(bào)表上的排列;B. 靈活的可定制性,用XML來描述一個(gè)報(bào)表相關(guān)數(shù)據(jù);C. 高度可編程性,不需要報(bào)表文件,通過代碼就可以實(shí)現(xiàn)報(bào)表生成、預(yù)覽和打印等一系列操作;D. 導(dǎo)出的Excel文件格式非常完美,任何其它報(bào)表在這方面都不能與之比擬,而且并不需要安裝Excel。2. 水晶報(bào)表不能導(dǎo)出成哪種類型_A. Adobe Acrobat (.pdf) B. Crystal Reports
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國集裝箱行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景預(yù)測研究報(bào)告
- 2025-2030中國防爆氫分析儀行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國鑄造和脫模紙行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國通航培訓(xùn)行業(yè)市場發(fā)展分析及競爭格局與投資前景研究報(bào)告
- 2025-2030中國進(jìn)料螺桿機(jī)筒行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國軟行李袋行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國貴金屬合金行業(yè)發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 制氫設(shè)備項(xiàng)目可行性研究報(bào)告(范文參考)
- 2025-2030中國苯丙哌林行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景預(yù)測研究報(bào)告
- 新型板材生產(chǎn)制造項(xiàng)目可行性研究報(bào)告
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 中華人民共和國突發(fā)事件應(yīng)對(duì)法
- 鞘內(nèi)注射化療護(hù)理課件
- 兒科護(hù)理質(zhì)量專項(xiàng)改善課件
- 郵政社區(qū)團(tuán)購怎么做流程
- 錢大媽計(jì)劃書
- 建筑施工電動(dòng)運(yùn)輸車輛進(jìn)場驗(yàn)收表
- Unit2Let'sCelebrate!Developingideas作業(yè)設(shè)計(jì)-2023-2024學(xué)年高中英語(精修版)
- 《愛彌兒》讀書分享會(huì)
- 預(yù)后的研究與評(píng)價(jià)
- 中醫(yī)治療潰瘍性結(jié)腸炎的難點(diǎn)及優(yōu)勢課件
評(píng)論
0/150
提交評(píng)論