一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Delphi二維碼、分組、批量打印經(jīng)驗(yàn)小結(jié)

 npkaida 2015-08-04
本帖最后由 daifubing 于 2015-08-04 11:37:30 編輯
Delphi二維碼中文支持、分組、批量打印經(jīng)驗(yàn)小結(jié)
FastReport設(shè)計(jì)入庫(kù)單報(bào)表實(shí)例

Delphi 二維碼 分組批量打印 fastreport 控件

背景:
一直也沒(méi)接觸到什么復(fù)雜的報(bào)表,都是一些簡(jiǎn)單的報(bào)表,在DelphI下使用QuickReport一般也就能滿(mǎn)足需要了,由于公司現(xiàn)在需求的變化,對(duì)條碼掃描提出了新的要求,主要是掃碼要包含更多地內(nèi)容,以前的一維碼顯然不能完全滿(mǎn)足,再說(shuō)二維碼也是一種趨勢(shì),故而需要解決二維碼的問(wèn)題,網(wǎng)上搜了一下,方式有多種多樣,我花了3天時(shí)間找了很多,也嘗試了很多。也經(jīng)歷了很多失??!總結(jié)一下在Delphi下實(shí)現(xiàn)二維碼主要有三種方法:
1、使用PtImageRW.dll和PtQREncode.dll動(dòng)態(tài)連接庫(kù),使用uQRCode生成二維碼圖像,如此就可以在報(bào)表中予以打印了,具體如何用uQRCode實(shí)現(xiàn)繪制二維碼,本人水平太低,無(wú)法參透;結(jié)合QuikReport就可以實(shí)現(xiàn)打印二維碼了,但此種有一個(gè)問(wèn)題就是不支持中文,如source1(整合到FastReport中也無(wú)法實(shí)現(xiàn)對(duì)中文的支持);
2、還有一種就是生成控件,利用ZINT制作的控件,如source2;此種有個(gè)問(wèn)題就是無(wú)法在報(bào)表中使用(也許是我不會(huì)用),只可在窗體上顯示,當(dāng)然理論上說(shuō)能在窗體上使用就完全可以用于打印報(bào)表了,可問(wèn)題時(shí)我不會(huì),哎,還是技術(shù)水平太低。還有一種叫Han-sof 2D Barcodes的控件,我可以安裝,但卻無(wú)法使用,無(wú)法生成二維碼到圖片??缮暇W(wǎng)搜索一下下載這個(gè)控件安裝一下,有搞定的與我共享一下。
3、用ZINT整合到FastReport中,也是下面我要敘述的形式:source3。完全可以滿(mǎn)足我的需求。

例子實(shí)現(xiàn)了對(duì)采購(gòu)入庫(kù)數(shù)據(jù)的分組批量打印,加入了二維碼的使用,當(dāng)然實(shí)際工作當(dāng)中制作入庫(kù)單基本上用不到批量打印的,一般都是一單一打,但在我這里沒(méi)辦法,必須設(shè)計(jì)這樣的功能,歷史遺留問(wèn)題吧,這里也牢騷一下吧!
如做一些延伸,很多的打印都和這個(gè)有很多的類(lèi)似之處,我說(shuō)的是并不太復(fù)雜的應(yīng)用,至于什么更復(fù)雜得我想FS也能搞的定,這里做一個(gè)總結(jié)是希望對(duì)和我一樣水平的人提供一些幫助吧,也許現(xiàn)在很多人根本不用Delphi了,權(quán)且當(dāng)作自己的一個(gè)筆記吧!
入庫(kù)單樣式如下:
 
 

一、環(huán)境及所用組件程序
1、Delphi2010
2、FastReport4.9 for 2010
3、zint.dll
4、frx2DBarcode.pas
5、frx2DBarcodeRTTI.pas
6、uBitMapOverriden.pas
7、ufrxZintBarcode.pas
8、uRegZintBarcode.pas
9、uZintInterface.pas

二、安裝FastReport4.9 for 2010
注意:安裝有一定要新建一個(gè)工程,并放置一個(gè)frxReport1控件,看看是否可以正常運(yùn)行,如果不能正常運(yùn)行,那么到安裝目錄檢查一下權(quán)限,將EVERYONE添加到文件夾權(quán)限,應(yīng)該就可以了,我的就是這樣。一定要確保frxReport可以正常運(yùn)行,否則一切都是白搭。
在2010下安裝,直接下一步到底就可以了,并不需要重新編譯;
Fastreport5在安裝的時(shí)候無(wú)法生成相應(yīng)版本的文件進(jìn)行編譯,不知道是何原因。

三、zint.dll與相關(guān)文件
1、將Zint.dll復(fù)制到工程文件的當(dāng)前目錄及windows的system32目錄下;不過(guò)好像不復(fù)制在當(dāng)前目錄頁(yè)不要緊,謹(jǐn)慎起見(jiàn)還是放一個(gè)吧!
2、在單元文件中引用frx2DBarcode,即可調(diào)用二維碼;我參考網(wǎng)上的例子,多引用了很多,具體如下,具體什么意思,也沒(méi)有細(xì)細(xì)研究。反正多幾個(gè)也沒(méi)壞處frxDesgn, frxClass, frxDCtrl, frxChart,frxDBSet,  frxRich, frxBarcode,frxOLE,  frxCross, frxDMPExport, frxExportImage, frxExportRTF,  frxExportXML, frxExportXLS, frxExportHTML, frxGZip, frxExportPDF,  frxChBox, frxExportText, frxExportCSV, frxExportMail,  frxADOComponents, frxCrypt, frxExportODF, frxGradient,frx2DBarcode;
3、窗體中加入以下控件。
 

屬性設(shè)置參考例程
4、打開(kāi)設(shè)計(jì)
procedure TMain_Form.RzBitBtn1Click(Sender: TObject);
begin
frxReport1.DesignReport;
end;
5、打開(kāi)預(yù)覽
frxReport1.Clear;
frxReport1.LoadFromFile('group.fr3');
frxReport1.DataSets.Clear;
frxReport1.DataSets.Add(frxDBData);
frxReport1.ShowReport;
frxReport1.Modified:=false;
6、設(shè)置ADOquery1的SQL為“select * from data_in order by bill_code_in desc”;再設(shè)置Active為T(mén)rue;
7、設(shè)置frxDBData的DataSet為ADOQuery1;右擊控件可以打開(kāi)Edit aliases對(duì)話(huà)框,如此在設(shè)計(jì)其中就可以使用數(shù)據(jù)源了。當(dāng)然在設(shè)計(jì)中也可自己設(shè)定。
 
UserName就是在FastReport下課見(jiàn)的數(shù)據(jù)連接名。
四、設(shè)計(jì)報(bào)表
注意:此種用法只能在運(yùn)行程序文件時(shí)才能設(shè)計(jì)報(bào)表,否則直接Delphi環(huán)境下的控件是無(wú)法顯示含有二維碼的設(shè)計(jì)頁(yè)面的。
 
運(yùn)行程序,單擊設(shè)計(jì)即可打開(kāi)“設(shè)計(jì)”界面;
 
1、雙擊頁(yè)面可以打開(kāi)此對(duì)話(huà)框,選擇Large height in design mode可以最大限度顯示設(shè)計(jì)的的幅面,不選擇此項(xiàng)目,添加幾個(gè)Band后你就會(huì)發(fā)現(xiàn)有的Band就找不到了!
 
2、在FASTREPORTX下用到的控件及布局區(qū)域;
 
3、page設(shè)計(jì)模式,主要用到Header、GroupHeader、MasterData、GroupFooter、PageFooter
 
4、添加完MasterData后,雙擊該BAND,如下圖選擇,之后再M(fèi)asterData的右上角出現(xiàn)frxDB,表示數(shù)據(jù)選擇成功
 

5、雙擊GroupHeader,選擇bill_code_in作為篩選條件;Options如下,之后右上角顯示frxDB.”bill_code_in”:
 
6、在各Band添加數(shù)據(jù),直接將右邊的字段拖入相應(yīng)區(qū)域即可,從這一點(diǎn)來(lái)看還是有優(yōu)勢(shì)的。
 

五、注意事項(xiàng)
(1)頁(yè)腳以 形式顯示,必須選擇Report的DoublePass屬性為T(mén)rue,否則顯示總頁(yè)數(shù)位0,記得插入那個(gè)不帶#好的page和totalpage,帶#好的事表示全部,試一下就知道什么意思了。
 
(2)如果需要在每頁(yè)都顯示Header,則在設(shè)計(jì)時(shí)選擇ReprintOnNewPage為T(mén)rue
 
(3)在使用到frx2DBarcode.pas文件時(shí)可能出現(xiàn)無(wú)法加載,即便已在USE里做了引用,因此最好的辦法就是直接加入到項(xiàng)目里來(lái)。Add to project
 
(4)在Delphi下如何改變FastReport的控件屬性。
TfrxMemoView(frxReport1.FindObject('memo16')).Text:=’設(shè)定的內(nèi)容’
(5)二維碼大小調(diào)整
二維碼大小調(diào)整可以在設(shè)計(jì)模式下設(shè)置參數(shù)AutoSizeZoom改變,也就是放大的比例;但這樣容易出現(xiàn)一個(gè)在你批量打印的時(shí)候滾動(dòng)鼠標(biāo)你會(huì)發(fā)現(xiàn)二維碼底部會(huì)少一小部分,也就無(wú)法掃描了,不知道打印是否有影響。
    
我是通過(guò)設(shè)置代碼來(lái)完成,我覺(jué)得這樣更方便一下,也不會(huì)出現(xiàn)上面的情況。
 

備注:
1、fastreport for 2010是我用的,可以正常使用也是例子里用到的4.9版本
2、fastreport5 for delphi7,已經(jīng)好久不用7了,故也沒(méi)測(cè)試,這是下載到的!測(cè)試成功的告訴我一下!
3、fastreport5 for xe8,我朋友測(cè)試通過(guò)的,也是他發(fā)給我的,但在我的xe8下就是不行,可以看到控件,但一運(yùn)行,就報(bào)錯(cuò),還沒(méi)時(shí)間研 究,我記得在裝XE8的時(shí)候是自帶了fastreport5的,但并沒(méi)有二維碼的選項(xiàng),我是卸載了自帶的,然后再安裝的,然后出現(xiàn)了一系列的問(wèn)題,實(shí)在沒(méi)時(shí)間,因?yàn)榇蟛糠殖绦蚴窃?010下的,還沒(méi)時(shí)間向XE8切換,不知道是不在安裝的時(shí)候不能安裝自帶的FS5,我朋友在第一次安裝的時(shí)候就沒(méi)有選擇,然后手動(dòng)安裝的,效果很好!
有知道fastreport5如何在2010下用的,麻煩指教一下!
4、source1-3,前面有說(shuō)過(guò)了,主要是一些例子,我所總結(jié)的三種方法,也不知道對(duì)不對(duì)!
5、zinBarcode文件里也是一個(gè)例子,也是用fastreport,可以比較完美的顯示中文fastreport,但二維碼不能顯示中文,設(shè)置成中文即報(bào)錯(cuò)。

感覺(jué)FastReport的功能實(shí)在是太強(qiáng)大了,但好多功能還不太會(huì)用,以后愿意與大家多交流這方面的信息!
聯(lián)系方式:jacdfb@163.com;qq:505689211


http://download.csdn.net/detail/daifubing/8957447

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    自拍偷女厕所拍偷区亚洲综合| 精品久久综合日本欧美| 最新国产欧美精品91| 精品视频一区二区不卡| 国产一区二区三区午夜精品| 国产av一区二区三区四区五区| 99免费人成看国产片| 欧美日韩国产综合在线| 国语久精品在视频在线观看 | 久久久精品日韩欧美丰满| 国产亚州欧美一区二区| 亚洲中文字幕人妻系列| 日韩欧美一区二区不卡视频| 国产午夜精品美女露脸视频| 丰满少妇被猛烈插入在线观看| 日本午夜免费福利视频| 欧美亚洲美女资源国产| 国产精品日韩精品最新| 欧美日本道一区二区三区| 中文字幕乱子论一区二区三区| 年轻女房东2中文字幕| 日韩中文字幕人妻精品| 韩国激情野战视频在线播放| 国产一区日韩二区欧美| 蜜桃传媒在线正在播放| 日本道播放一区二区三区| 欧美日韩精品综合一区| 日韩一区二区三区免费av| 国产日韩欧美在线亚洲| 免费在线成人激情视频| 果冻传媒精选麻豆白晶晶| 国产在线观看不卡一区二区| 国产水滴盗摄一区二区| 大香蕉精品视频一区二区| 99久久精品久久免费| 最近的中文字幕一区二区| 日本黄色高清视频久久| 好东西一起分享老鸭窝| 欧美又黑又粗大又硬又爽| 欧美黄色黑人一区二区| 最近中文字幕高清中文字幕无 |