1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 功能简介
票据的套打是一种普遍的需求,即在一张印刷好的票据上,准确无误的打印票据的内容。
传统的报表工具,需要用尺子量出数据在套打背景的位置,然后在屏幕上根据尺寸定位数据所在单元格的位置,相当繁琐。
FineReport 报表可以将套打背景扫描成图片,直接作为报表背景,对应背景插入数据,而打印时只打印出相应位置上的数据,不打印背景及其他格式。如下图效果:
注:套打时,不支持由前端调整套打内容的位置,需要在设计器里做好页面的设置。
2. 示例
2.1 票据处理
将票据处理成与实际尺寸相同,且分辨率为 96dpi 的图片
通过扫描仪将要进行套打的票据扫描成图片,再通过画图软件将图片编辑成分辨率为 96dpi,与实际尺寸相同的图片。
处理好的图片保存如%FR_HOME%\webroot\WEB-INF\reportlets\doc\Check.jpg。
设置了报表背景后,报表背景图片会保存在报表文件中,别的电脑也需要这个模板,只要拷贝 cpt 文件即可,不需要拷贝原始背景图片。
2.2 新建报表,将图片设置为纸张背景
点击「菜单模板>纸张背景」,打开背景设置的对话框,选择「图片」,点击「选择图片」,选择「背景」,设为「平铺」,如下图所示:
注:若希望在打印时,也能将报表背景打印出来,则需要将打印报表背景勾选上。
2.3 页面设置
根据票据的实际尺寸进行页面大小设置,同时将页边距都设为 0。
2.4 设计报表
添加数据集 ds1,SQL 语句为SELECT * FROM 订单,使用订单表制作一张每个订单的开票信息,最终打印出来。
拖拽数据列,调整单元格使得报表内容对应到票据的相应位置:
调整分页线内最右方的单元格,保证最右方边框线与分页线在票据背景的最右边缘重合;按同理调整最下方的单元格,如下图所示:
设置订购日期、客户 ID、应付金额、货主名称所在的单元格左父格都为订单 ID 所在单元格,使他们都跟随订单 ID 进行扩展;
其中客户 ID 我们使用 数据字典,显示对应的客户名称。
注:将左上角和右下角单元格的左父格设置为报表内容的主父格如这里的订单ID单元格,否则会出现数据整体上移的现象。
2.5 效果预览
保存模板,点击分页预览,效果如描述中所示,可以看到每页显示一组订单开票信息,且数据位置与背景严格对齐。点击「打印」,就能够进行票据的套打了。
模板效果在线查看效果请前往 在线Demo 进行体验
已完成报表可参考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\票据套打.cpt
3. 常见问题
1. 预览时数据整体向上偏移
问题描述:在预览套打模板时,第一页正常,从第二页开始数据都会向上偏移,如下图所示:
原因分析:
原因一:左上角与右下角的左父格没有设置,导致占位的空白单元格没有跟随主格的扩展而复制,没有这些空白单元格的占位作用,数据就整体上移了。
原因二:报表页面大小与套打背景大小不一致导致数据向上或向下偏移。
解决方案:
对报表背景区域左上角与右下角的单元格设置左父格,让其跟随套打数据的扩展而扩展。
确保报表 纸张大小 与套打背景大小一致。
2. 打印时报表背景偏移
问题描述:在打印套打模板时,有的客户端打印正常,有的客户端打印报表背景会偏移。
原因分析:由于打印机的不同造成的,有的打印机本身会有一定的偏移量。
解决方案:将打印有偏移的客户端,设置打印偏移量,具体的设置可查看 偏移打印 章节。
3. 重复数据只显示一页
问题描述:预览套打模板,有重复数据时,只显示一页。
原因分析:模板的最左父格的数据设置为分组显示了。
解决方案:将有数据的最左父格的 数据列 中的数据设置为列表显示。
4. 设计器里显示效果和浏览器上差别太大
问题描述:设置纸张背景进行套打的时候,设计器里显示效果和浏览器上差别很大,设计器里对齐的行,到浏览器(IE 和谷歌)里不对齐,但是打印的时候又对齐了。
原因分析:由于电脑的 DPI 设置,导致设计器效果和浏览器效果不一致,一般高分辨率的客户容易习惯调节成 125% 或者 150% 显示,但这样会影响 FR 的显示效果。
解决方案:将电脑 DPI 调回 100%,如下图: