康虎云报表系统
使用说明
(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 “康虎云报表系统介绍”