VB.NET水晶報(bào)表控件經(jīng)驗(yàn)總結(jié)
學(xué)習(xí)VB.NET時(shí),你可能會(huì)遇到VB.NET水晶報(bào)表控件問題,這里將介紹VB.NET水晶報(bào)表控件問題的解決方法,在這里拿出來和大家分享一下。
Crystal Reporter(水晶報(bào)表)
做為一個(gè)優(yōu)秀的報(bào)表軟件,水晶報(bào)表是實(shí)際應(yīng)用中最多的方案。在這一節(jié)里主要介紹一下水晶報(bào)表的定制和顯示,打印功能的實(shí)現(xiàn)。首先要區(qū)分水晶報(bào)表插件程序和VB.NET水晶報(bào)表控件。前者主要用來創(chuàng)建報(bào)表模板,后者主要是用來在程序中顯示和打印報(bào)表,這兩者的分工決定了它們程序中的功能的不同。其中水晶報(bào)表的插件程序可以從Seagate公司的官方網(wǎng)站上下載***的測(cè)試版本。
1.VB.NET水晶報(bào)表控件程序的使用
選擇"外接程序"菜單的"報(bào)表設(shè)計(jì)器"選項(xiàng),則VB將執(zhí)行水晶報(bào)表 Pro插件應(yīng)用程序。在水晶報(bào)表 Pro里選擇"新建報(bào)表"圖標(biāo),可以選擇8標(biāo)準(zhǔn)模板和一個(gè)自定義的模板來開始報(bào)表工程。
整個(gè)水晶報(bào)表的使用跟***節(jié)的Data Report的使用很類似。首先需要給報(bào)表選擇數(shù)據(jù)源,(即數(shù)據(jù)庫),然后就可以在報(bào)表中添加、刪除、修改字段以及為記錄分組,可以利用水晶報(bào)表創(chuàng)建很多具有自定義風(fēng)格的報(bào)表。由于本身水晶報(bào)表插件程序就是一個(gè)功能強(qiáng)大的報(bào)表設(shè)計(jì)軟件,這里就不能一一的講解了,有興趣可以參考程序自帶的幫助文檔。
2.VB.NET水晶報(bào)表控件的背景知識(shí)
水晶報(bào)表 Pro還提供一個(gè)報(bào)表生成模塊,該模塊可以連接到并訪問VB應(yīng)用程序,VB程序員不需花費(fèi)大量時(shí)間寫自己的代碼就可再應(yīng)用程序中添加復(fù)雜的報(bào)表生成及輸出功能。
水晶報(bào)表引擎是一個(gè)動(dòng)態(tài)鏈接庫,它可以使應(yīng)用程序訪問并具有同水晶報(bào)表 一樣強(qiáng)大的報(bào)表輸出功能。應(yīng)用程序是通過水晶報(bào)表 ActiveX控件來訪問引擎。再編譯時(shí)應(yīng)用程序同報(bào)表引擎鏈接,以給應(yīng)用程序添加了生成報(bào)表的功能。
當(dāng)程序使用水晶報(bào)表 ActiveX控件時(shí),可以通過再設(shè)計(jì)時(shí)設(shè)置Crystal對(duì)象屬性或者再運(yùn)行時(shí)改變對(duì)象屬性,來建立應(yīng)用程序和水晶報(bào)表之間的連接。通過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控件必須在由水晶報(bào)表 Pro創(chuàng)建的報(bào)表中使用,而試圖在VB應(yīng)用程序里引用之前,必須首先創(chuàng)建報(bào)表。
3.VB.NET水晶報(bào)表控件的使用
了解了VB.NET水晶報(bào)表控件的功能,那么就可以使用它了。首先通過"工程"的"部件"選項(xiàng)里面選擇"水晶報(bào)表 Control",那么VB的工具箱里面就添加了VB.NET水晶報(bào)表控件了。
注意,對(duì)于VB.NET水晶報(bào)表控件的最重要的屬性就是ReportFileName了,把它設(shè)置為前面已經(jīng)在水晶報(bào)表 Pro里定制好的報(bào)表模板的文件路徑。那么只需要調(diào)用控件的PrintReport方法就可以將報(bào)表顯示出來了。
相對(duì)于Data Report控件來說,VB.NET水晶報(bào)表控件的功能更加的完善,報(bào)表預(yù)覽,打印,編輯修改等功能都很完善,所以在實(shí)際的報(bào)表應(yīng)用設(shè)計(jì)方案中,使用水晶報(bào)表的相對(duì)較多。然而VB.NET水晶報(bào)表控件也有它的局限性,即它不能在運(yùn)行時(shí)創(chuàng)建自定義的窗口??梢允褂每丶臄?shù)據(jù)綁定屬性來創(chuàng)建數(shù)據(jù)綁定報(bào)表,但是報(bào)表本身的格式都是由 VB.NET水晶報(bào)表控件內(nèi)部進(jìn)行處理的。一般說來,VB.NET水晶報(bào)表控件不提供在程序中對(duì)報(bào)表字段級(jí)的訪問。這一缺陷可以通過設(shè)計(jì)出足夠多的報(bào)表來彌補(bǔ)。
【編輯推薦】