《C__WinForm實(shí)踐開發(fā)教程》chp7.水晶報(bào)表技術(shù)_第1頁
《C__WinForm實(shí)踐開發(fā)教程》chp7.水晶報(bào)表技術(shù)_第2頁
《C__WinForm實(shí)踐開發(fā)教程》chp7.水晶報(bào)表技術(shù)_第3頁
《C__WinForm實(shí)踐開發(fā)教程》chp7.水晶報(bào)表技術(shù)_第4頁
《C__WinForm實(shí)踐開發(fā)教程》chp7.水晶報(bào)表技術(shù)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、-基于C#語言主講教師:錢 哨本課學(xué)時(shí):72課時(shí)聯(lián)系方式:Windows程序設(shè)計(jì)第七章、水晶報(bào)表技術(shù)n本章主要內(nèi)容介紹5.1 windows和窗體5.2 Visual Stutio .net IDE簡介5.3 事件處理CONTENT本章學(xué)習(xí)目標(biāo):本章學(xué)習(xí)目標(biāo): 理解水晶報(bào)表的作用和優(yōu)點(diǎn) 使用水晶報(bào)表專家創(chuàng)建水晶報(bào)表 在窗體中使用水晶報(bào)表和報(bào)表綁定簡介 7-1產(chǎn)品部的薪金詳細(xì)信息財(cái)務(wù)部的薪金詳細(xì)信息市場部的薪金詳細(xì)信息按順序顯示信息匯總信息?報(bào)表格式化且有條理的數(shù)據(jù)記錄表示方式水晶報(bào)表簡介 7-2姓名: Allen John職位:分析員部門:20薪金:10000姓 名 : J a c k Tur

2、ner職位: 行政人員部門: 10薪金: 3200姓名: Mark Lee職位: 經(jīng)理部門: 30薪金: 12000姓名: Chan Cho職位: 銷售員部門: 40薪金: 7600姓名: David Blake職位: 銷售員部門: 40薪金: 6500姓 名 : S u s a n Jones職位: 行政人員部門: 10薪金: 4500姓 名 : S c o t t William職位: 銷售員部門: 40薪金: 8500姓名: Adam Johns職位: 分析員部門: 20薪金: 9500用表格形式顯示的數(shù)據(jù)需要手動計(jì)算每個(gè)部門的總薪金水晶報(bào)表簡介 7-3Jack Turner行政人員10

3、3200Susan Jones行政人員104500部門部門 10 的總薪金是的總薪金是 7700Allen John分析員2010000Adam Johns分析員209500部門 20 的總薪金是 19500 Mark Lee經(jīng)理3012000部門部門 30 的總薪金是的總薪金是 12000 Chan Cho銷售員407600David Blake銷售員406500Scott William銷售員408500部門部門 40 的總薪金是的總薪金是 22700 有條理的表示數(shù)據(jù)記錄更容易匯總所需的信息水晶報(bào)表簡介 7-4 水晶報(bào)表是 Visual Studio 環(huán)境(包括 Visual Studi

4、o.NET)中用于創(chuàng)建報(bào)表的標(biāo)準(zhǔn)工具 利用水晶報(bào)表可以創(chuàng)建交互式的優(yōu)質(zhì)報(bào)表 不僅能為 WinForms 和 WebForms 創(chuàng)建報(bào)表,還能將報(bào)表作為Web 服務(wù)存放在 Web 服務(wù)器上 “水晶報(bào)表設(shè)計(jì)器”界面用于創(chuàng)建并格式化報(bào)表,大大減少代碼編寫量水晶報(bào)表的功能運(yùn)行時(shí)自定義報(bào)表查看器與其他控件之間的交互報(bào)表作為Web服務(wù)借助交互式界面更加容易地創(chuàng)建報(bào)表水晶報(bào)表水晶報(bào)表Windows窗體中水晶報(bào)表的使用 7-5u 新建Windows項(xiàng)目u 添加CrystalReportViewer 控件u 添加“選擇報(bào)表”按鈕u 添加按鈕響應(yīng)事件private void btnSelect_Click(obj

5、ect sender, System.EventArgs e) OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = 打開水晶報(bào)表文件; dlg.Filter = 水晶報(bào)表文件(*.rpt)|*.rpt|所有文件|*.*; if(dlg.ShowDialog()=DialogResult.OK) crystalReportViewer1.ReportSource = dlg.FileName; Windows窗體中水晶報(bào)表的使用 7-6水晶報(bào)表的操作分為兩部分顯示報(bào)表文件設(shè)計(jì)報(bào)表文件建立水晶報(bào)表文件 7-71、 執(zhí)行模式執(zhí)行模式水晶報(bào)表取

6、數(shù)據(jù)可以使用下面的方法實(shí)現(xiàn): Pull 模式: 被請求時(shí),水晶報(bào)表直接根據(jù)指定的驅(qū)動連接數(shù)據(jù)庫然后組裝這些數(shù)據(jù),當(dāng)然這種方式不需要編寫任何代碼不需要編寫任何代碼。 Push 模式: 此時(shí)開發(fā)者不得不自己編寫代碼連接數(shù)據(jù)并組裝不得不自己編寫代碼連接數(shù)據(jù)并組裝DataSet,同時(shí)將它傳送至報(bào)表。在這種情況下,通過使用連接共享以及限制記錄集合的大小,可以使用報(bào)表性能最大化。建立水晶報(bào)表文件 7-72、報(bào)表類型、報(bào)表類型(1)Strongly-typed 報(bào)表: 當(dāng)你將報(bào)表文件加入到項(xiàng)目中去時(shí),它就變成了一個(gè)了“ strongly-typed“報(bào)表。在這些情況下,你將擁有直接創(chuàng)建報(bào)表的對象的權(quán)力,這將

7、減少一些代碼并且能夠提供一些性能。(2)Un-Typed 報(bào)表: 這里的報(bào)表并不直接包含在項(xiàng)目中,因此稱為un-typed 報(bào)表。在這種情況下,你不得不使用水晶報(bào)表的”ReportDocuemt“對象建立一個(gè)實(shí)例,并且”手動“地調(diào)用報(bào)表。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(1)首先創(chuàng)建rpt文件,并使用水晶報(bào)表設(shè)計(jì)接口設(shè)置一些必須的數(shù)據(jù)連接。(2)拖放一個(gè)CrystalReportViewer控件至aspx頁面,設(shè)置它的屬性指定我們上一步創(chuàng)建的.rpt文件。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(1)在右擊“解決方案游覽器”,在彈出的菜單中選擇“添加”“

8、添加新項(xiàng)”“Crystal Report”(2)在“Crystal Report 庫”中選擇“作為空白報(bào)表”單選按鈕,最后單擊“確定”。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(3)出現(xiàn)水晶報(bào)表設(shè)計(jì)器。(4)右擊報(bào)表中的“詳細(xì)資料區(qū)”,選擇“數(shù)據(jù)庫”“數(shù)據(jù)庫專家.“。在彈出的“數(shù)據(jù)庫專家”中,擴(kuò)展“OLE DB(ADO)”選項(xiàng),此時(shí)會彈出另外一個(gè)“OLE DB(ADO)”窗口。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(5)在OLE DB (ADO) 彈出窗口中,選擇MicrosoftOLE DB Provider for SQL Server 然后Next(6)

9、指定連接的信息(選擇Pubs庫),單擊“下一步”,最后單擊“完成”按鈕。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(7)這時(shí)你就能在“數(shù)據(jù)庫專家”窗口中看到我們選擇的數(shù)據(jù)庫。 擴(kuò)展“Pubs”數(shù)據(jù)庫,擴(kuò)展“表”,選擇“employee”表并將其加到“選定的表”區(qū)中,單擊“確定”按鈕。(8)現(xiàn)在在“字段資源瀏覽器”中就會在左邊“數(shù)據(jù)庫字段”區(qū)中顯示你選擇的表,以及表中的字段。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(9)拖放需要的字段進(jìn)入報(bào)表的“詳細(xì)資料”區(qū)。字段名將會自動出現(xiàn)在”頁眉“區(qū)。如果你想修改頭部文字,則可以右擊“頁眉”區(qū)中的文字,選擇”編輯文本對象“選項(xiàng)

10、并進(jìn)行編輯。保存并瀏覽信息。建立水晶報(bào)表文件 7-73、Pull模式的使用模式的使用(10)回到前面的WebForm中,拖放一個(gè)CrystalReport Viewer控件到頁面中去。(11)調(diào)出Crystal Report Viewer控件的屬性窗口,選擇“ReportSource”區(qū)點(diǎn)擊下拉列表。此時(shí)你能夠從Crystal Report Viewer 控件中看到使用一些虛擬數(shù)據(jù)組成的報(bào)表文件的預(yù)覽。建立水晶報(bào)表文件 7-74、使用、使用Push模式模式 設(shè)計(jì)一個(gè)DataSet 創(chuàng)建一個(gè).rpt文件同時(shí)將其指定給上一步建立的DataSet。 在aspx頁面中拖放一個(gè)CrystalReport

11、Viewer 控件同時(shí)將其與前面的rpt文件建立聯(lián)系。 在代碼中訪問數(shù)據(jù)庫并把數(shù)據(jù)存入DataSet 調(diào)用DataBind方法?;静襟E基本步驟建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第一步:設(shè)計(jì)一個(gè)第一步:設(shè)計(jì)一個(gè)DataSet(1) 右擊“解決方案瀏覽器”,選擇“添加”-“添加新項(xiàng)”-“數(shù)據(jù)集”(2)從“服務(wù)器資源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS數(shù)據(jù)庫中)。(3)此時(shí)在數(shù)據(jù)集中就會有一個(gè)Stores表的結(jié)構(gòu)圖。建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第一步:設(shè)計(jì)一個(gè)第一步:設(shè)計(jì)一個(gè)DataSet建立水晶報(bào)表文件 7-74

12、、使用、使用Push模式模式第二步:創(chuàng)建一個(gè)第二步:創(chuàng)建一個(gè).rpt文件同時(shí)將其指定給上一步建立的文件同時(shí)將其指定給上一步建立的DataSet4) 使用上面的介紹過的方法創(chuàng)建此文件,唯一的不同就是使用數(shù)據(jù)集來代替前面的直接連接數(shù)據(jù)。5)建立.rpt文件之后,右擊“詳細(xì)資料”-“添加刪除數(shù)據(jù)庫”6) 在“數(shù)據(jù)庫專家”窗口中,展開“項(xiàng)目數(shù)據(jù)”(代替以前的OleDb),展開“ADO.Net數(shù)據(jù)集”-“DataSet1”,選擇“Stores”表。7) 將“Stores”表添加到“選定的表”中,點(diǎn)擊“確定”建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第二步:創(chuàng)建一個(gè)第二步:創(chuàng)建一個(gè).rpt文件

13、同時(shí)將其指定給上一步建立的文件同時(shí)將其指定給上一步建立的DataSet建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第三步:在第三步:在aspx頁面中拖放一個(gè)頁面中拖放一個(gè)CrystalReportViewer 控件同時(shí)將其與前面的控件同時(shí)將其與前面的rpt文件建立聯(lián)系。文件建立聯(lián)系。建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第四步:建立一個(gè)第四步:建立一個(gè)Crystal Report Viewer 控件,并控件,并設(shè)定其屬性,此處與設(shè)定其屬性,此處與PULL模式下是一致的。同時(shí)注意將生成的模式下是一致的。同時(shí)注意將生成的dataset對象對象拖拽到窗體界面中。拖拽到窗體界

14、面中。建立水晶報(bào)表文件 7-74、使用、使用Push模式模式第五步:運(yùn)行后我們將看見一張空的報(bào)表,主要原因是第五步:運(yùn)行后我們將看見一張空的報(bào)表,主要原因是DataSet對象對象所復(fù)制的僅僅是空的物理表的模式結(jié)構(gòu),而實(shí)質(zhì)的數(shù)據(jù)必須通過編程所復(fù)制的僅僅是空的物理表的模式結(jié)構(gòu),而實(shí)質(zhì)的數(shù)據(jù)必須通過編程的方式才可以實(shí)現(xiàn)。的方式才可以實(shí)現(xiàn)。在代碼中訪問數(shù)據(jù)庫并把數(shù)據(jù)存入在代碼中訪問數(shù)據(jù)庫并把數(shù)據(jù)存入DataSet,代碼見下:,代碼見下:7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例某高校為合作辦學(xué)院校,現(xiàn)有三所合作院校,且成績單據(jù)的格式某高校為合作辦學(xué)院校,

15、現(xiàn)有三所合作院校,且成績單據(jù)的格式完全不一致,紙質(zhì)報(bào)表樣式如下:【詳見學(xué)生成績單據(jù)報(bào)表圖片】完全不一致,紙質(zhì)報(bào)表樣式如下:【詳見學(xué)生成績單據(jù)報(bào)表圖片】7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例數(shù)據(jù)庫分析【數(shù)據(jù)庫分析報(bào)告見電子文檔】數(shù)據(jù)庫分析【數(shù)據(jù)庫分析報(bào)告見電子文檔】7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第一步:建立一個(gè)空的rpt文件,首先進(jìn)行整個(gè)報(bào)表的紙張大小設(shè)置,這一點(diǎn)對于后期打印報(bào)表和報(bào)表布局非常重要第二步:將紙張大小設(shè)置成為B5紙,縱向7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)

16、生成績單案例:打印某高校學(xué)生成績單案例第三步:再選擇頁面設(shè)置,配置頁面的上下左右的邊距。具體的邊距要求參照WORD文檔對于頁面的設(shè)置參數(shù)。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第四步:從報(bào)表的工具箱中選擇文本對象,拖到報(bào)表頁眉處,鍵入“網(wǎng)絡(luò)管理”字樣后,點(diǎn)擊右鍵選擇設(shè)置對象格式,建立如下圖的報(bào)表頁眉樣式。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第五步:設(shè)計(jì)頁眉部分。由于報(bào)表左側(cè)線段無法通過工具箱的控件實(shí)現(xiàn),故通過繪圖軟件實(shí)現(xiàn)這部分內(nèi)容。通過右鍵點(diǎn)擊頁眉處,選擇圖片,將制作好的圖片插入左側(cè)頁眉處

17、。而后,以該圖片的高設(shè)定為頁眉高。從工具箱之中拖拽框?qū)ο?,此處需要注意的是,繪制邊框時(shí)候,頁眉和詳細(xì)資料西部一起框住,這樣產(chǎn)生的報(bào)表樣式可以統(tǒng)一美觀。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第六步:選擇工具箱之中的線條對象,在頁眉處繪制出四個(gè)單元格,準(zhǔn)備添加相關(guān)的文字信息。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第七步:用右鍵點(diǎn)擊報(bào)表界面,在彈出的菜單中選擇數(shù)據(jù)庫-數(shù)據(jù)庫專家,在彈出的OLE DB(ADO)界面中選擇OLE DB Provider SQL Server,并配置數(shù)據(jù)庫服務(wù)器連接信息

18、。選擇完成后,打開菜單中的水晶報(bào)表項(xiàng)里面的字段資源管理器,貯備將展開的數(shù)據(jù)庫字段拖拽到報(bào)表界面上面。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第八步:將頁眉處文字按照下圖寫入,并配置字體大小,同時(shí)用線條對象勾勒出表格的基本數(shù)據(jù)分布區(qū)域。拖拽過來的屬性字段刪除頁眉部分后,將實(shí)際字段分別排列在詳細(xì)資料的空格內(nèi)。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第九步:配置報(bào)表頁腳部分,從工具箱中拖拽文本,線條和框?qū)ο蠊餐M成下圖頁腳的樣式。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某

19、高校學(xué)生成績單案例第十步:右鍵點(diǎn)擊報(bào)表頁面,選擇報(bào)表-節(jié)專家,在打開的節(jié)專家設(shè)計(jì)器里面,勾選在頁面底部打印功能。此功能可以使得報(bào)表頁腳僅僅在最后一頁的底部顯示。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第十一步:整體設(shè)計(jì)完成后的報(bào)表如下圖所示,點(diǎn)擊主報(bào)表預(yù)覽,可以預(yù)覽報(bào)表基本樣子。7-8 水晶報(bào)表文件設(shè)計(jì)案例案例案例1:打印某高校學(xué)生成績單案例:打印某高校學(xué)生成績單案例第十二步:回到form1界面,從水晶報(bào)表中拖出一個(gè)crystalReportViewer對象,并配置該crystalReportViewer對象的reportsource屬性為剛才設(shè)計(jì)的rpt文件。運(yùn)行form1,程序一切正常,主要問題是:u報(bào)表頭非動態(tài)變化的數(shù)據(jù);u顯示的學(xué)生成績內(nèi)容并非一個(gè)班的,而是所有的學(xué)生成績。u每門課程的百分比非動態(tài)變化的,畢竟每個(gè)教師給出的百分比都不盡相同。u報(bào)表頁腳的信息是靜態(tài)不變的。很顯然,離真實(shí)的動

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論