资料教程

康虎云报表系统介绍

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

发表评论

邮箱地址不会被公开。 必填项已用*标注