康虎云报表系统
使用说明
(ver 1.2.1)
一、概述:
B/S应用系统的报表打印一直以来都是一个难题,以前常规的思路是通过在浏览器中安装ActiveX插件以获得直接驱动打印机的能力。
但是,随着浏览器的发展,越来越多的浏览器厂商禁止安装ActiveX,以避免因ActiveX组件导致的各种安全问题。
为解决B/S打印中的痛点,我工作室开发了本报表服务器,完美地解决了在浏览器端不用ActiveX而获得与C/S系统一样的打印能力。
本报表系统不需要在浏览器安装任何插件,只需通过JavaScript即可实现报表精确打印以及打印过程免人工介入。
作者:康虎软件工作室
QQ: 360026606
微信:360026606
二、特点:
1、高兼容:不需要在浏览器端和服务端安装任何插件,在浏览器插件成为过街老鼠的今天,兼容绝大多数浏览器(IE10以下版本需要一个扩展);
2、免安装:软件即拷即用,不安装,不污染操作系统,让操作系统历久弥新;
3、可视化:可视化的模板设计器,通过拖拽即可完成模板设计;
4、高精度:实现精确到毫米的打印精度,对于一些格式复杂,要求精确打印的场合,可以很容易达到毫米级精度;
5、易套打:可视化的模板设计器,在模板中加入一个票据格式的底图,可以很方便地实现套打,对于实现发票、快递面单、支票等打印毫无压力;
6、功能强:从简单报表、主从报表到嵌套报表甚至交叉报表,均能轻松应对。还有一维二维条形码、甚至,还有逆天的脚本功能,只有想不到,没有做不到;
7、自动化: 打印过程中全部自动化,无需象生成PDF、Word、Excel那样还需要人工再点打印;
8、易部署:打印模板既可以部署在客户端(与 cfprint.exe 程序放在同一目录下),也支持部署在服务端,把模板进行Base64编码实时传给客户端;
三、使用前提条件:
1、IE10以上版本、Chrome(谷歌浏览器)4.0以上版本、Firefox 4.0以上版本、Opera 11以上版本、Safari 5.0.2以上版本、iOS 4.2以上版本
或使用Chrome内核、Firefox内核的浏览器均可直接使用本打印系统;对于IE6~IE9,请联系我们获取支持;
2、在进行打印前,需要先设计好打印模板(模板设计器请见第五节);
3、打印数据必须Json的格式发送给打印服务器,并且数据必须满足指定的格式(见下文);
四、数据格式说明:
下面以一个跨境电商快递面单数据为例解释一下数据各项的含义;
{ "template": "waybill.fr3", /*打印模板文件名,支持Base64编码的模板直接嵌入,格式如下:*/ /*"template": "base64: QTBBRTNEQTE3MkFFQjIzNEFERD<后面省略>" */ "ver": 3, /*数据模板版本*/ "Tables":[ /*数据表数组*/ { "Name": "Table1", /*表名*/ "Cols": [ /*字段定义*/ { "type": "str", /*字段类型,可选值:String,Str,Integer,Int,Smallint,Float,Long*/ "size": 255, /*字段长度*/ "name": "HAWB#", /*字段名称,必须与打印模板中的打印项名称相同*/ "required": false /*字段是否必填*/ }, { "type": "int", "size": 0, "name": "NO", "required": false }, { "type": "float", "size": 0, "name": "报关公司面单号", "required": false }, { "type": "integer", "size": 0, "name": "公司内部单号", "required": false }, { "type": "str", "size": 255, "name": "发件人", "required": false }, { "type": "str", "size": 255, "name": "发件人地址", "required": false }, { "type": "str", "size": 255, "name": "发件人电话", "required": false }, { "type": "str", "size": 255, "name": "发货国家", "required": false }, { "type": "str", "size": 255, "name": "收件人", "required": false }, { "type": "str", "size": 255, "name": "收件人地址", "required": false }, { "type": "str", "size": 255, "name": "收件人电话", "required": false }, { "type": "str", "size": 255, "name": "收货人证件号码", "required": false }, { "type": "str", "size": 255, "name": "收货省份", "required": false }, { "type": "float", "size": 0, "name": "总计费重量", "required": false }, { "type": "int", "size": 0, "name": "总件数", "required": false }, { "type": "float", "size": 0, "name": "申报总价(CNY)", "required": false }, { "type": "float", "size": 0, "name": "申报总价(JPY)", "required": false }, { "type": "int", "size": 0, "name": "件数1", "required": false }, { "type": "str", "size": 255, "name": "品名1", "required": false }, { "type": "float", "size": 0, "name": "单价1(JPY)", "required": false }, { "type": "str", "size": 255, "name": "单位1", "required": false }, { "type": "float", "size": 0, "name": "申报总价1(CNY)", "required": false }, { "type": "float", "size": 0, "name": "申报总价1(JPY)", "required": false }, { "type": "int", "size": 0, "name": "件数2", "required": false }, { "type": "str", "size": 255, "name": "品名2", "required": false }, { "type": "float", "size": 0, "name": "单价2(JPY)", "required": false }, { "type": "str", "size": 255, "name": "单位2", "required": false }, { "type": "float", "size": 0, "name": "申报总价2(CNY)", "required": false }, { "type": "float", "size": 0, "name": "申报总价2(JPY)", "required": false }, { "type": "AutoInc", "size": 0, "name": "ID", "required": false } ], "Data": [ /*数据行定义,每一行含义见上面的字段定义*/ { "HAWB#": "860014010055", "NO": 1, "报关公司面单号": 200303900791, "公司内部单号": 730293, "发件人": "NAKAGAWA SUMIRE 2", "发件人地址": " 991-199-113,Kameido,Koto-ku,Tokyo", "发件人电话": "03-3999-3999", "发货国家": "日本", "收件人": "张三丰", "收件人地址": "上海市闵行区虹梅南路1660弄蔷薇八村99号9999室", "收件人电话": "182-1234-8888", "收货人证件号码": null, "收货省份": null, "总计费重量": 3.2, "总件数": 13, "申报总价(CNY)": null, "申报总价(JPY)": null, "件数1": 10, "品名1": "纸尿片", "单价1(JPY)": null, "单位1": null, "申报总价1(CNY)": null, "申报总价1(JPY)": null, "件数2": null, "品名2": null, "单价2(JPY)": null, "单位2": null, "申报总价2(CNY)": null, "申报总价2(JPY)": null, "ID": 1 }, { "HAWB#": "860014010035", "NO": 2, "报关公司面单号": 200303900789, "公司内部单号": 730291, "发件人": "NAKAGAWA SUMIRE", "发件人地址": " 991-199-113,Kameido,Koto-ku,Tokyo", "发件人电话": "03-3999-3999", "发货国家": "日本", "收件人": "张无忌", "收件人地址": "上海市闵行区虹梅南路1660弄蔷薇八村88号8888室", "收件人电话": "182-1234-8888", "收货人证件号码": null, "收货省份": null, "总计费重量": 3.2, "总件数": 13, "申报总价(CNY)": null, "申报总价(JPY)": null, "件数1": 10, "品名1": "纸尿片", "单价1(JPY)": null, "单位1": null, "申报总价1(CNY)": null, "申报总价1(JPY)": null, "件数2": null, "品名2": null, "单价2(JPY)": null, "单位2": null, "申报总价2(CNY)": null, "申报总价2(JPY)": null, "ID": 2 } ] }, { "Name": "Table2", "Cols": [ { "type": "int", "size": 0, "name": "NO", "required": false }, { "type": "float", "size": 0, "name": "订单编号", "required": false }, { "type": "integer", "size": 0, "name": "下单日期", "required": false }, { "type": "str", "size": 255, "name": "下单平台", "required": false } ], "Data": [ { "NO": 1, "订单编号": 200303900791, "下单日期": "2017-01-20", "下单平台": "天猫" }, { "NO": 2, "订单编号": 200303900792, "下单日期": "2017-01-20", "下单平台": "京东" } ] } ] }
五、调用示例:
<!DOCTYPE html> <head> <meta charset="utf-8" /> <title>康虎云报表系统测试</title> </head> <body> <div style="width: 100%;text-align:center;"> <h2>康虎云报表系统</h2> <h3>打印测试</h3> <div> <input type="button" id="btnPrint" value="打印" onClick="doSend(_reportData);" /> </div> </div> <div id="output"></div> </body> <script type="text/javascript"> //定义数据脚本 var _reportData = '{"template":"waybill.fr3","Cols":[{"type":"str","size":255,"name":"HAWB#","required":false},<这里省略1000字> ]}'; //在浏览器控制台输出调试信息 console.log("reportData = " + _reportData); </script> <script language="javascript" type="text/javascript" src="cfprint.min.js"></script> <script language="javascript" type="text/javascript" src="myreport.js"></script> <script language="javascript" type="text/javascript"> /**下面四个参数必须放在myreport.js脚本后面,以覆盖myreport.js中的默认值**/ var _delay_send = 1000; //发送打印服务器前延时时长,-1则表示不自动打印 var _delay_close = 1000; //打印完成后关闭窗口的延时时长, -1则表示不关闭 var cfprint_addr = "127.0.0.1"; //打印服务器监听地址 var cfprint_port = 54321; //打印服务器监听端口 </script> </html>
六、模板设计器(重要!重要!!好多朋友都找不到设计器入口)
在主界面上,双击右下角的字母“H”,即可打开模板设计工具箱,在工具箱有三个按钮和一个大文本框。三个按钮的作用分别是:
设计:以大文本框中的json数据为数据源,打开模板设计器窗口;
预览:以大文本框中的json数据为数据源,预览当前所用模板的打印效果;
打印:以大文本框中的json数据为数据源,向打印机输出当前所用模板生成的报表;
以后将会有详细的模板设计教程发布,如果您遇到紧急的难题,请向作者咨询。
===========================
作者:康虎软件工作室
QQ: 360026606
微信:360026606
One thought on “康虎云报表系统介绍”