Crystal Report 打包過(guò)程。將
C:\Program Files\Common Files\Merge Modules\ 下的Crystal_Database_Access2003.msm
Crystal_Database_Access2003_chs.msm
Crystal_Managed2003.msm
Crystal_Managed2003_chs.msm
Crystal_regwiz2003.msm
這五個(gè)文件添加進(jìn)入安裝包。
并設(shè)置包Crystal_regwiz2003.msm的ModuleDependencies屬性值為“AAP5G-KS00000-U7000T5”
Cryustall Report.net 的序列號(hào):
注冊(cè)號(hào)碼:6192203776
Key:AAP5G-KS00000-U7000T5
不過(guò)只能5個(gè)用戶(hù)同時(shí)用
使用Crystal Report.net進(jìn)行開(kāi)發(fā)的一些預(yù)備知識(shí):
執(zhí)行模式
水晶報(bào)表取數(shù)據(jù)可以使用下面的方法實(shí)現(xiàn):
Pull 模式:
被請(qǐng)求時(shí),水晶報(bào)表直接根據(jù)指定的驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)然后組裝這些數(shù)據(jù)。
Push 模式 :
此時(shí)開(kāi)發(fā)表不得不自己編寫(xiě)代碼連接數(shù)據(jù)并組裝DataSet,同時(shí)將它傳送至報(bào)表。在些這種情況下,通過(guò)使用連接共享以及限制記錄集合的大小,可以使用報(bào)表性能最大化。
報(bào)表類(lèi)型:
水晶報(bào)表設(shè)計(jì)器能夠直接包含報(bào)表至工程也能夠使用獨(dú)立的報(bào)表對(duì)象。
Strongly-typed 報(bào)表 :
當(dāng)你將報(bào)表文件加入到項(xiàng)目中去時(shí),它就變成了一個(gè)了“ strongly-typed“報(bào)表。在這些情況下,你將擁有直接創(chuàng)建報(bào)表的對(duì)象的權(quán)力,這將減少一些代碼并且能夠提供一些性能。
Un-Typed 報(bào)表 :
這里的報(bào)表并不直接包含在項(xiàng)目中,因此稱(chēng)為‘un-typed’ 報(bào)表。在這種情況下,你不得不使用水晶報(bào)表的”ReportDocuemt“對(duì)象建立一個(gè)實(shí)例,并且”手動(dòng)“地凋用報(bào)表。
其它注意事項(xiàng)
盡管水晶報(bào)表查看器擁有一些很酷的功能,如縮放、頁(yè)面導(dǎo)航等。但是他不提供打印功能,你不得不調(diào)用游覽器的打印功能。
VS.Net中的水晶報(bào)表如果沒(méi)有注冊(cè),那么它只能使用30次,30次后,”保存“功能就不能再使用了。為了避免這個(gè),你不是不在 http://www.crystaldecisions.com/這里注冊(cè)此產(chǎn)品。 (好像不是這樣子的,不注冊(cè)也好像能用很長(zhǎng)的時(shí)間,只是不能提供支持)
默認(rèn)安裝的水晶報(bào)表只能支持5個(gè)用戶(hù),為了支持更多的用戶(hù),你不得不在 http://www.crystaldecisions.com/中購(gòu)買(mǎi)許可證。
我在實(shí)際開(kāi)發(fā)應(yīng)用中使用的是Push 模式 : , 因?yàn)橐话惚砀衲J奖容^簡(jiǎn)單,在Web開(kāi)發(fā)上完全可以用其他方式替代,因此,我使用的是實(shí)際開(kāi)發(fā)中的圖形報(bào)表做為例子。
開(kāi)發(fā)步驟如下:
1、在項(xiàng)目中創(chuàng)建一個(gè)數(shù)據(jù)集,然后右鍵->選擇“新建element”,element的名稱(chēng)就是數(shù)據(jù)表的名稱(chēng)。
數(shù)據(jù)集名稱(chēng)暫時(shí)定為:ReportData,element相當(dāng)于一個(gè)數(shù)據(jù)表,名稱(chēng)暫定為:DataTable,下一步是給element
增加字段,也就是我們報(bào)表中要使用的數(shù)據(jù)。注意字段類(lèi)型。
2、繪制一個(gè)空的Crystal Report的報(bào)表文件(*.rpt),然后,在報(bào)表繪制界面上右鍵->選擇“數(shù)據(jù)庫(kù)->添加/刪除數(shù)據(jù)庫(kù)”打開(kāi)“數(shù)據(jù)庫(kù)專(zhuān)家”,選擇“項(xiàng)目數(shù)據(jù)->ADO.net數(shù)據(jù)集”,你會(huì)看到剛才創(chuàng)建的element數(shù)據(jù)集ReportData,選用DataTable做為報(bào)表數(shù)據(jù)。下一步,通過(guò)報(bào)表專(zhuān)家插入“圖表”,使用DataTable中的數(shù)據(jù)字段
來(lái)生成報(bào)表的數(shù)據(jù)。
3、創(chuàng)建一個(gè)Web窗體,在窗體上放一個(gè)CRYSTALREPORTVIEWER控件!寫(xiě)代碼獲取填充一個(gè)定義的數(shù)據(jù)集DataSet,然后,生成一個(gè)“報(bào)表文件的對(duì)象”,把該對(duì)象的數(shù)據(jù)源指向已經(jīng)填充數(shù)據(jù)的DataSet,對(duì)CRYSTALREPORTVIEWER控件的ReportSource屬性賦值等于生成的“報(bào)表文件的對(duì)象”,CRYSTALREPORTVIEWER控件的Visible屬性設(shè)置為true;
代碼注意事項(xiàng):
1、DataSet中填充數(shù)據(jù)的表的名稱(chēng)必須和原來(lái)定義的element一致,否則報(bào)表出來(lái)會(huì)是空白
2、用于填充DataSet數(shù)據(jù)表的字段也要和element定義的字段屬性,名稱(chēng)一致!
比如:
element中定義字段有兩個(gè):EntryName string, EntrySales decimal
填充DataSet的SQL語(yǔ)句,
Select B.Item_Name as EntryName ,Sum(A.Expend_Money) AS EntrySales From T_Ware_Sales .......
完成以上3個(gè)步驟,你就可以在IE上看到你的Web圖形報(bào)表了,其實(shí)就是Crystal生成的一張圖片!
大功告成!
下一個(gè)章節(jié),我將用自己的代碼來(lái)詳細(xì)說(shuō)明整個(gè)過(guò)程。不過(guò)要是熟悉.net開(kāi)發(fā)的按照我在本章節(jié)所描述的內(nèi)容,應(yīng)該已經(jīng)沒(méi)問(wèn)題了!
有一次把一個(gè)使用Crystal的項(xiàng)目移植,到另外的一個(gè)開(kāi)發(fā)環(huán)境下!
項(xiàng)目運(yùn)行起來(lái)發(fā)現(xiàn),crystal生成的圖片全變成了紅X, NND惡心啊!
后來(lái)和運(yùn)行良好的環(huán)境比較發(fā)現(xiàn),新的IIS網(wǎng)站根目錄下缺少一個(gè)虛擬目錄: CrystalReportWebFormViewer2 該虛擬目錄指向 D:\Studio.net 2003\Crystal Reports\Viewers\ , 就是我安裝Studio.net 開(kāi)發(fā)環(huán)境的目錄下!
我在新環(huán)境中建一個(gè)同名的虛擬目錄,指向新機(jī)器的對(duì)應(yīng)目錄!
再次運(yùn)行項(xiàng)目! 一切OK!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
