Visual-Basic通用報(bào)表設(shè)計(jì)小結(jié)_第1頁(yè)
Visual-Basic通用報(bào)表設(shè)計(jì)小結(jié)_第2頁(yè)
Visual-Basic通用報(bào)表設(shè)計(jì)小結(jié)_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、大家都知道,在借助第三方軟 CrystalReporterVB 平臺(tái)下制作報(bào)表大致有兩種選擇:使用VB 自帶的件。其中第三方軟件比較著名的就是MSExcel,以下就這三個(gè)方案進(jìn)行詳細(xì)的討論。Data Report和Seagate控件和公司的1. Data Report控件1 1 Data Report控件使用方法由于是 VB 自帶的控件,所以使用相對(duì)比較方便。使用方法是:首先在選擇 添加 Data report 選項(xiàng),這樣Data Report控件就選入到了應(yīng)用程序。工程 菜單下面使用 Data report的情況大多數(shù)采用數(shù)據(jù)綁定的模式,也就是將此控件與數(shù)據(jù)庫(kù)的數(shù)據(jù)表綁定起來(lái)以便可以不用編寫

2、代碼就輕松完成報(bào)表的設(shè)計(jì)。要使用數(shù)據(jù)綁定就必須要指定數(shù)據(jù)源, 這里的數(shù)據(jù)源不是數(shù)據(jù)控件而是數(shù)據(jù)環(huán)境( Data Environment),選擇 工程 菜單下面選擇 添加 Data Environment選項(xiàng)就可以將數(shù)據(jù)環(huán)境添加進(jìn)應(yīng)用程序中。數(shù)據(jù)環(huán)境有兩個(gè)重要的屬性: Connection和 Command屬性,前者是連接指定的數(shù)據(jù)庫(kù),后者連接指定的數(shù)據(jù)表,一旦這兩者都設(shè)置成功之后,就可以把數(shù)據(jù)環(huán)境作為數(shù)據(jù)源了。只需要把 Data report的 DataSource屬性設(shè)置為前面的數(shù)據(jù)環(huán)境對(duì)象以及把DataMember設(shè)置為數(shù)據(jù)環(huán)境對(duì)象的Command對(duì)象即可。1 2 Data Report控

3、件界面元素完成了 Data report 控件的數(shù)據(jù)綁定工作之后就可以直接控制報(bào)表的制作與顯示了。這里首先熟悉一下 Data report 控件的顯示界面:Datareport 控件一共有5 個(gè)區(qū)組成,分別是報(bào)表頭、頁(yè)面頭、細(xì)節(jié)區(qū)、頁(yè)面注腳和報(bào)表注腳。 報(bào)表頭和報(bào)表注腳是用分別用于整個(gè)報(bào)表的最上部和最下部, 它們將出現(xiàn)于整個(gè)報(bào)表的每一頁(yè), 可以放置一些報(bào)表名稱, 時(shí)間之類的固定文本; 頁(yè)面頭和頁(yè)面注腳只能出現(xiàn)在當(dāng)前頁(yè)的最上部和最下部, 也就是說(shuō)它只能出現(xiàn)在當(dāng)前頁(yè)中, 不出現(xiàn)在其他頁(yè)面中, 可以放置隨頁(yè)面變化的一些量比如頁(yè)碼等; 而細(xì)節(jié)區(qū)就是用來(lái)進(jìn)行實(shí)際顯示的區(qū)域, 它是我們最為關(guān)心的區(qū)域, 通

4、過(guò)在此區(qū)域內(nèi)放置顯示控件可以控制報(bào)表的實(shí)際顯示輸出。 這里介紹一下放置文本框控件的使用方法, 其實(shí)在綁定情況下只需要設(shè)置其 DataMember 和 Datafield 即可,前者用來(lái)指定數(shù)據(jù)表,可以設(shè)置為前面數(shù)據(jù)環(huán)境對(duì)象的 Command 對(duì)象,后者是指定數(shù)據(jù)段,即綁定的數(shù)據(jù)庫(kù)的指定字段。這樣不需要編寫任何代碼就可以實(shí)現(xiàn)報(bào)表的顯示工作。1 3 Data Report控件的打印功能對(duì)于報(bào)表的打印可以直接使用Data report自帶的打印功能,即可以實(shí)現(xiàn)簡(jiǎn)易的報(bào)表打印。不過(guò)為了實(shí)現(xiàn)比較復(fù)雜的打印功能,也可以通過(guò)程序控制的方法來(lái)進(jìn)行。這里只是給出一個(gè)實(shí)現(xiàn)思路:首先需要制作一個(gè)按鈕控件來(lái)顯示 打印

5、設(shè)置 的窗口,通過(guò)這個(gè)窗口用戶可以設(shè)置打印的相關(guān)的參數(shù),然后在實(shí)現(xiàn)打印的子模塊中使用VB 內(nèi)嵌的printer對(duì)象來(lái)實(shí)現(xiàn)真實(shí)的打印,該對(duì)象能夠?qū)Υ蛴〉漠?dāng)前位置進(jìn)行定位,而且對(duì)打印的字體等參數(shù)進(jìn)行控制,所以結(jié)合 打印設(shè)置 窗口可以實(shí)現(xiàn)類似于word 里面的打印功能。2 MS Excel說(shuō)起報(bào)表設(shè)計(jì)應(yīng)用程序,無(wú)意微軟的 Excel 是一支獨(dú)秀, MS Excel 就是用來(lái)進(jìn)行表格和報(bào)表設(shè)計(jì)用的應(yīng)用程序, 它具有優(yōu)秀的方格控制和宏代碼定制功能。 所以如果在設(shè)計(jì)自己的應(yīng)用程序的時(shí)候能夠結(jié)合到 Excel 的話,那么你的應(yīng)用程序就應(yīng)該是相當(dāng)?shù)耐晟屏耍?因?yàn)闊o(wú)論是編輯還是打印功能, Excel 都提供了很

6、完美的解決方案,所以你的應(yīng)用程序所要做的事情就是實(shí)現(xiàn)程序和 Excel 通訊即可。事實(shí)上,可以使用VBscript可以將VB與Excel兩者連接起來(lái)。以下就簡(jiǎn)要介紹在VB下開發(fā)基于Excel 的編程思路。在 VB 中處理 Excel 的對(duì)象大致分為五個(gè): Application 對(duì)象、WorkBook 對(duì)象、WorkSheet對(duì)象、 Range 對(duì)象以及Cell 對(duì)象。它們的功能分別如下:Application-用來(lái)指代整個(gè)應(yīng)用程序。WorkBook-表示工作簿對(duì)象WorkSheet-表示工作表對(duì)象,注意, 一個(gè)工作簿可以包含多個(gè)工作表,它們就類似于多文檔中的框架窗口和里面的單個(gè)視圖一樣。Ra

7、nge-表示工作表中的某個(gè)區(qū)域范圍對(duì)象,特殊情況下也可以只代表一個(gè)Cell 。Cell-表示特定工作表的一個(gè)單元格對(duì)象。這個(gè)對(duì)象的使用頻率是最高的。清楚了以上的五個(gè)對(duì)象的應(yīng)用范圍, 那么使用它們就很簡(jiǎn)單了, 不過(guò)在使用這些對(duì)象之前,首先需要對(duì)它們進(jìn)行聲明。 方法是在 工程 的 引用 對(duì)話框之下選擇 Microsoft Excel9.0 Object Library ,這樣就將整個(gè) Excel 對(duì)象庫(kù)就引入到程序中來(lái)了。下面舉一個(gè)示例,其實(shí)現(xiàn)的功能是打開一個(gè)工作簿。Function OpenBook(str As String) As Boolean This procedure checks

8、to see if the workbook specified in the str argument is open. If it is open, the workbook is activated. If it is not open, the procedure opens it.Dim wkbCurrent As Excel.WorkbookDim strBookName As StringOn Error GoTo OpenBook_Err Determine the name portion of the str argument. strBookName = NameFrom

9、Path(str)程序。在 Crystal Reports Pro 模板來(lái)開始報(bào)表工程。If Len(strBookName) = 0 Then Exit FunctionIf Workbooks.Count 0 ThenFor Each wkbCurrent In WorkbooksIf UCase$(wkbCurrent.Name) = UCase$(strBookName) Then wkbCurrent.ActivateExit FunctionEnd IfNext wkbCurrentEnd IfWorkbooks.Open strBookNameOpenBook = TrueOpe

10、nBook_End:Exit FunctionOpenBook_Err:OpenBook = FalseResume OpenBook_EndEnd Function3 Crystal Reporter(水晶報(bào)表)做為一個(gè)優(yōu)秀的報(bào)表軟件, 水晶報(bào)表是實(shí)際應(yīng)用中最多的方案。 在這一節(jié)里主要介紹一下水晶報(bào)表的定制和顯示,打印功能的實(shí)現(xiàn)。首先要區(qū)分Crystal Reports插件程序和Crystal Reports控件。前者主要用來(lái)創(chuàng)建報(bào)表模板,后者主要是用來(lái)在程序中顯示和打印報(bào)表, 這兩者的分工決定了它們程序中的功能的不同。其中 Crystal Reports的插件程序可以從Seagate 公司

11、的官方網(wǎng)站上下載最新的測(cè)試版本。3 1 Crystal Reports插件程序的使用選擇 外接程序菜單的 報(bào)表設(shè)計(jì)器 選項(xiàng),則VB 將執(zhí)行 Crystal Reports Pro插件應(yīng)用里選擇 新建報(bào)表 圖標(biāo),可以選擇8 標(biāo)準(zhǔn)模板和一個(gè)自定義的整個(gè)水晶報(bào)表的使用跟第一節(jié)的 Data Report 的使用很類似。 首先需要給報(bào)表選擇數(shù)據(jù)源,(即數(shù)據(jù)庫(kù)),然后就可以在報(bào)表中添加、刪除、修改字段以及為記錄分組,可以利用水晶報(bào)表創(chuàng)建很多具有自定義風(fēng)格的報(bào)表。由于本身 Crystal Reports 插件程序就是一個(gè)功能強(qiáng)大的報(bào)表設(shè)計(jì)軟件,這里就不能一一的講解了,有興趣可以參考程序自帶的幫助文檔。3 2

12、 Crystal Reports控件的背景知識(shí)Crystal Reports Pro還提供一個(gè)報(bào)表生成模塊,該模塊可以連接到并訪問VB 應(yīng)用程序,VB 程序員不需花費(fèi)大量時(shí)間寫自己的代碼就可再應(yīng)用程序中添加復(fù)雜的報(bào)表生成及輸出功能。CrystalReports引擎是一個(gè)動(dòng)態(tài)鏈接庫(kù),它可以使應(yīng)用程序訪問并具有同Reports一樣強(qiáng)大的報(bào)表輸出功能。應(yīng)用程序是通過(guò)Crystal Reports ActiveXCrystal控件來(lái)訪問引擎。再編譯時(shí)應(yīng)用程序同報(bào)表引擎鏈接,以給應(yīng)用程序添加了生成報(bào)表的功能。當(dāng)程序使用 Crystal Reports ActiveX 控件時(shí),可以通過(guò)再設(shè)計(jì)時(shí)設(shè)置 Cry

13、stal 或者再運(yùn)行時(shí)改變對(duì)象屬性,來(lái)建立應(yīng)用程序和 Crystal Reports 之間的連接。通過(guò)控件的屬性可以指定:對(duì)象屬性Crystal響應(yīng)應(yīng)用程序某個(gè)事件的輸出報(bào)表的名字。報(bào)表的目標(biāo)位置(預(yù)覽窗口、磁盤文件或者電子郵件等)。想要打印的份數(shù)(如果報(bào)表提交給打印機(jī)的話)。輸出文件的信息。預(yù)覽窗口的大小及位置信息(如果報(bào)表在預(yù)覽窗口中顯示時(shí))。選擇公式信息(如果在報(bào)表中限制記錄的話)。排序信息。其他相關(guān)的屬性。這里要注意一點(diǎn)的是, Crystal 控件必須在由 Crystal Reports Pro 創(chuàng)建的報(bào)表中使用,而試圖在 VB 應(yīng)用程序里引用之前,必須首先創(chuàng)建報(bào)表。3 3 Cryst

14、al Reports控件的使用了解了選項(xiàng)里面選擇Crystal CrystalReports Reports控件的功能,那么就可以使用它了。首先通過(guò)Control ,那么 VB 的工具箱里面就添加了工程 的 部件 Crystal Reports控件了。注意,對(duì)于 Crystal Reports控件的最重要的屬性就是在CrystalReportsPro里定 制好的報(bào)表模板的文件Report 了,把它設(shè)置為前面已經(jīng)路徑。那么只需要調(diào)用控件的PrintReport方法就可以將報(bào)表顯示出來(lái)了。相對(duì)于 Data Report控件來(lái)說(shuō), Crystal Reports控件的功能更加的完善,報(bào)表預(yù)覽, 打印,編輯修改等功能都很完善,所以在實(shí)際的報(bào)表應(yīng)用設(shè)計(jì)方案中,使用CrystalReports的相對(duì)較多。然而 Crystal Reports 控件也有它的局限性,即它不能在運(yùn)行時(shí)創(chuàng)建自定義的窗口??梢允褂每丶臄?shù)據(jù)綁定屬性來(lái)創(chuàng)建數(shù)據(jù)綁定報(bào)表,但是報(bào)表本身的格式都是由CrystalReports控件內(nèi)部進(jìn)行處理的。一般說(shuō)來(lái),CrystalReports 控件不提供在程序中對(duì)報(bào)表字段級(jí)的訪問。這一缺陷可以通過(guò)設(shè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論