一直也没接触到什么复杂的报表,都是一些简单的报表,在DelphI下使用QuickReport一般也就能满足需要了,由于公司现在需求的变化,对条码扫描提出了新的要求,主要是扫码要包含更多地内容,以前的一维码显然不能完全满足,再说二维码也是一种趋势,故而需要解决二维码的问题,网上搜了一下,方式有多种多样,我花了3天时间找了很多,也尝试了很多。也经历了很多失败!总结一下在Delphi下实现二维码主要有三种方法:

1、使用PtImageRW.dll和PtQREncode.dll动态连接库,使用uQRCode生成二维码图像,如此就可以在报表中予以打印了,具体如何用uQRCode实现绘制二维码,本人水平太低,无法参透;结合QuikReport就可以实现打印二维码了,但此种有一个问题就是不支持中文,如source1(整合到FastReport中也无法实现对中文的支持);

2、还有一种就是生成控件,利用ZINT制作的控件,如source2;此种有个问题就是无法在报表中使用(也许是我不会用),只可在窗体上显示,当然理论上说能在窗体上使用就完全可以用于打印报表了,可问题时我不会,哎,还是技术水平太低。还有一种叫Han-sof 2D Barcodes的控件,我可以安装,但却无法使用,无法生成二维码到图片。可上网搜索一下下载这个控件安装一下,有搞定的与我共享一下。

3、用ZINT整合到FastReport中,也是下面我要叙述的形式:source3。完全可以满足我的需求。

例子实现了对采购入库数据的分组批量打印,加入了二维码的使用,当然实际工作当中制作入库单基本上用不到批量打印的,一般都是一单一打,但在我这里没办法,必须设计这样的功能,历史遗留问题吧,这里也牢骚一下吧!

如做一些延伸,很多的打印都和这个有很多的类似之处,我说的是并不太复杂的应用,至于什么更复杂得我想FS也能搞的定,这里做一个总结是希望对和我一样水平的人提供一些帮助吧,也许现在很多人根本不用Delphi了,权且当作自己的一个笔记吧!

入库单样式如下:

一、环境及所用组件程序

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

注意:安装有一定要新建一个工程,并放置一个frxReport1控件,看看是否可以正常运行,如果不能正常运行,那么到安装目录检查一下权限,将EVERYONE添加到文件夹权限,应该就可以了,我的就是这样。一定要确保frxReport可以正常运行,否则一切都是白搭。

在2010下安装,直接下一步到底就可以了,并不需要重新编译;

Fastreport5在安装的时候无法生成相应版本的文件进行编译,不知道是何原因。

三、zint.dll与相关文件

1、将Zint.dll复制到工程文件的当前目录及windows的system32目录下;不过好像不复制在当前目录页不要紧,谨慎起见还是放一个吧!

2、在单元文件中引用frx2DBarcode,即可调用二维码;我参考网上的例子,多引用了很多,具体如下,具体什么意思,也没有细细研究。反正多几个也没坏处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、窗体中加入以下控件。

属性设置参考例程

4、打开设计

procedure TMain_Form.RzBitBtn1Click(Sender:TObject);

begin

frxReport1.DesignReport;

end;

5、打开预览

frxReport1.Clear;

frxReport1.LoadFromFile('group.fr3');

frxReport1.DataSets.Clear;

frxReport1.DataSets.Add(frxDBData);

frxReport1.ShowReport;

frxReport1.Modified:=false;

6、设置ADOquery1的SQL为“select *from data_in order by bill_code_in desc”;再设置Active为True;

7、设置frxDBData的DataSet为ADOQuery1;右击控件可以打开Editaliases对话框,如此在设计其中就可以使用数据源了。当然在设计中也可自己设定。

UserName就是在FastReport下课见的数据连接名。

四、设计报表

注意:此种用法只能在运行程序文件时才能设计报表,否则直接Delphi环境下的控件是无法显示含有二维码的设计页面的。

运行程序,单击设计即可打开“设计”界面;

1、双击页面可以打开此对话框,选择Largeheight in design mode可以最大限度显示设计的的幅面,不选择此项目,添加几个Band后你就会发现有的Band就找不到了!

2、在FASTREPORTX下用到的控件及布局区域;

3、page设计模式,主要用到Header、GroupHeader、MasterData、GroupFooter、PageFooter

4、添加完MasterData后,双击该BAND,如下图选择,之后再MasterData的右上角出现frxDB,表示数据选择成功

5、双击GroupHeader,选择bill_code_in作为筛选条件;Options如下,之后右上角显示frxDB.”bill_code_in”:

6、在各Band添加数据,直接将右边的字段拖入相应区域即可,从这一点来看还是有优势的。

五、注意事项

(1)页脚以形式显示,必须选择Report的DoublePass属性为True,否则显示总页数位0,记得插入那个不带#好的page和totalpage,带#好的事表示全部,试一下就知道什么意思了。

(2)如果需要在每页都显示Header,则在设计时选择ReprintOnNewPage为True

(3)在使用到frx2DBarcode.pas文件时可能出现无法加载,即便已在USE里做了引用,因此最好的办法就是直接加入到项目里来。Add to project

(4)在Delphi下如何改变FastReport的控件属性。

TfrxMemoView(frxReport1.FindObject('memo16')).Text:=’设定的内容’

(5)二维码大小调整

二维码大小调整可以在设计模式下设置参数AutoSizeZoom改变,也就是放大的比例;但这样容易出现一个在你批量打印的时候滚动鼠标你会发现二维码底部会少一小部分,也就无法扫描了,不知道打印是否有影响。

我是通过设置代码来完成,我觉得这样更方便一下,也不会出现上面的情况。

备注:

1、fastreport for 2010是我用的,可以正常使用也是例子里用到的4.9版本

2、fastreport5 fordelphi7,已经好久不用7了,故也没测试,这是下载到的!测试成功的告诉我一下!

3、fastreport5 for xe8,我朋友测试通过的,也是他发给我的,但在我的xe8下就是不行,可以看到控件,但一运行,就报错,还没时间研

究,我记得在装XE8的时候是自带了fastreport5的,但并没有二维码的选项,我是卸载了自带的,然后再安装的,然后出现了一系列的问题,实在没时间,因为大部分程序是在2010下的,还没时间向XE8切换,不知道是不在安装的时候不能安装自带的FS5,我朋友在第一次安装的时候就没有选择,然后手动安装的,效果很好!

有知道fastreport5如何在2010下用的,麻烦指教一下!

4、source1-3,前面有说过了,主要是一些例子,我所总结的三种方法,也不知道对不对!

5、zinBarcode文件里也是一个例子,也是用fastreport,可以比较完美的显示中文fastreport,但二维码不能显示中文,设置成中文即报错。

感觉FastReport的功能实在是太强大了,但好多功能还不太会用,以后愿意与大家多交流这方面的信息!

联系方式:jacdfb@163.com;qq:505689211;

资源下载:http://download.csdn.net/detail/daifubing/8957447

转自: http://www.voidcn.com/blog/daifubing/article/p-4550801.html

(转: daifubing的博客 )Delphi二维码中文支持、分组、批量打印经验小结的更多相关文章

  1. Delphi 二维码生成

    Delphi 二维码生成 http://download.csdn.net/detail/warrially/7370171

  2. Delphi 二维码产生和扫描

    Zint用于产生二维码. Zxing用读取二维码. VFrames.pas和VSample.pas用于摄像头. 另附带摄像头相关的类库,也可用开源的dspack也可用于摄像头的需求. 以上为开源的信息 ...

  3. 【VB.NET】利用 ZXing.Net 生成二维码(支持自定义LOGO)

    有任何疑问请去我的新博客提出 https://blog.clso.fun/posts/2019-03-03/vb-net-zxing-net-qr-maker.html ZXing .NET 的项目主 ...

  4. jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO

    描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较         ...

  5. javaScript生成二维码(支持中文,生成logo)

    资料搜索 选择star最多的两个 第一个就是用的比较多的jquery.qrcode.js(但不支持中文,不能带logo)啦,第二个支持ie6+,支持中文,根据第二个源代码,使得,jquery.qrco ...

  6. JqueryQrcode生成二维码不支持中文的解决办法

    JqueryQrcode.js有一个小小的缺点,就是默认不支持中文. 这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的, 而这个方法默认会 ...

  7. JS生成二维码,支持中文字符

    一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...

  8. 生成二维码的js以及调用打印插件

    插件: qrcode.js 插件下载网址:http://code.ciaoca.com/javascript/qrcode/ 用法实例: <script type="text/java ...

  9. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    目录 功能介绍 常见问题 效果图与示例 apk Gradle 依赖 布局文件 自定义属性说明 接口说明 关于我 功能介绍 根据之前公司的产品需求,参考 barcodescanner 改的,希望能帮助到 ...

随机推荐

  1. 吉特仓库管理系统-ORM框架的使用

    最近在园子里面连续看到几篇关于ORM的文章,其中有两个印象比较深刻<<SqliteSugar>>,另外一篇文章是<<我的开发框架之ORM框架>>, 第一 ...

  2. System.Diagnostics.Process 启动进程资源或调用外部的命令的使用

    经常看到一些程序在保存为一个txt,或者excel的文件的时候,保存完毕立即打开, 启动程序或打开文件的代码 System.Diagnostics.Process.Start(System.IO.Pa ...

  3. 在openwrt装ipk包

    用到putty终端和winsp两个软件 其中winsp是连接上192.168.1.1(文件协议选SCP),然后将ipk包放进去 然后用putty进入192.168.1.1 @root账号密码填完--- ...

  4. java使用ftp上传文件

    ftpServer是apache MINA项目的一个子项目,它实现了一个ftp服务器,与vsftpd是同类产品.Filezilla是一个可视化的ftp服务器. ftp客户端也有很多,如Filezill ...

  5. 1125Sending data

    -- Sending data具体干什么The thread IS processing ROWS FOR a SELECT statement AND also IS sending DATA TO ...

  6. Asp.Net Core 项目搭建 基础配置 和MySql 的使用

    一.开发环境准备 1.安装Visual Studio 2015,我这里安装的是专业版. 2.安装.NET Core SDK相关 需要安装  Visual Studio 2015 update3和NET ...

  7. java 异步处理

    详情请看:http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315645.html 引入ExecutorService 类 private st ...

  8. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护

    首先到phpexcel官网上下载最新的phpexcel类,下周解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把class ...

  9. UI: 标题栏

    TitleBarDemo.xaml <Page x:Class="Windows10.UI.TitleBarDemo" xmlns="http://schemas. ...

  10. Alpha阶段第八次Scrum Meeting

    情况简述 Alpha阶段第八次Scrum Meeting 敏捷开发起始时间 2016/10/31 00:00 敏捷开发终止时间 2016/10/32 00:00 会议基本内容摘要 跟助教进行了交流,明 ...