- 零代码高效打印:基于多维表格的标签自动化解决方案
- 打印精灵表格操作技巧(一)
- 打印精灵表格操作技巧(二):
- LabVIEW集成”打印精灵"实现条码打印 | 技术方案
- 生产型企业内网环境下条码标签打印解决方案
- 第三方网站嵌入“打印精灵”快速实现标签打印
- 如何快速实现信息系统的标签打印功能
- "打印精灵:javascript 脚本助你设计复杂和灵活的标签 “
- "打印精灵"linux版本下载安装指南
- “打印精灵”打印服务不能自动启动解决办法
- 利用打印精灵定制版,最小成本开发信息系统标签打印功能
- 实现WEB打印的几种方法
- 便携式移动打印协议CPCL介绍
- 深入了解Zebra打印机与ZPL语言:一个初学者的指南
打印精灵表格使用技巧: 报表开发
上一篇文章打印精灵表格操作技巧(一),我们介绍了打印精灵表格操作的常用技巧, 总体上打印精灵表格操作上手难度低,使用方式与 Word、WPS 等字处理软件相近,基本无需额外学习即可熟练使用, 帮助你迅速地创建表格。
在本篇文章中, 我将进一步介绍打印精灵表格的高级功能, 可以将将打印精灵作为高级报表开发工具, 代替传统的报表打印控件, 迅速开发各类报表,如订单,送货单等, 在开发企业信息系统, 如ERP, WMS, MES等时, 可以极大地提升工作效率.开发的报表, 并且提供了多种API可以, 用于WEB打印, C# 传统工业软件开发.
报表开发的核心要求是什么?
我们先来看看几个例子(这几个例子都是用打印精灵打印出来的):



第一个第二个例子是工厂的送货单, 第三个例子是设备管理中常用资产管理卡片. 如果从报表开发的角度看, 他们的结构都是类似的: 一是公共属性打印: 订单编号, 收货人, 收货人地址, 设备编号等等; 二是明细, 在报表中有一块区域打印明细, 第1/2例子中是送货的材料明细, 第三个例子是设备的调拨记录. 明细的特点是数量不确定, 每张报表都不相同, 可能打不满一页需要用斜线标出空白处, 也可能很多会打印多页, 应该在报表的适当位置打印页码(第X页/共X页).
以上这些就是报表软件核心功能要求, 打印精灵通过创新设计, 提供了非常简洁的界面和API接口, 完美地满足地满足了这些要求.
报表设计操作
第一步是绘制基础表格
参考上一篇文章打印精灵表格操作技巧(一)不难绘制出报表, 必要的地方应该使用变量, 如:订单编号, 收货人, 设备编号, 在批量打印或API模式打印时,会自动用传入的值实时替换变量,这和设计普通标签没有差别。
为了方便读者, 这里把设计好的表格共享给大家, 送货单1, 送货单1, 资产卡片
第二步是设定明细区域及参数
这是报表开发的核心, 但实际上操作非常简单.
选中报表, 用 SHIFT + 鼠标 选择明细区域, 通过右键菜单, 选择设置表格数据块菜单项, 或在顶部工具栏选择对应功能, 弹出如下对话框:
(点击可查看大图)
设置表格数据块对话框设置如下内容:
-
填充区域: 只读,只能通过SHIFT+鼠标选择;
-
填充变量: 这是关键,无论是API方式,还是其他方式调用, 都会用这个变量送明细数据.
-
变量类型: 变量的每行数据是数组还是KeyValue格式, 如送货单的数组格式为:
1[ 2 ["螺丝3x10", "PN0001", "30mm x 10mm", "100"], 3 ["螺母", "PN0002", "100mm", "150"] 4]如果采用KeyValue格式是这样的.
1[ 2 {"name":"螺丝3x10", "no":"PN0001", "specs":"30mm x 10mm", "amount":"100"}, 3 {"name":"螺母", "no":"PN0002", "specs":"100mm", "amount":"150"} 4]一般来说采用数组更方便, 可以满足大多数要求. 但是如果要求更复杂, 比如每条记录需要打印一个条码, 或单元格是多个字段组合,就必须采用KeyValue格式(见后面的填充方式).
-
填充方式: 分为表格模式和阵列模式两种情况.
- 表格模式: 填充变量的每个元素对应表格的一行. 支持数组, KeyValue元素.
- 阵列模式: 填充变量的每个元素对应表格的一个单元格, 只支持KeyValue元素.
变量类型是数组时, 将自动按顺序填充区域内的每行.
变量类型是KeyValue元素是, 需要在数据块第一行(表格模式)或第一个单元格(阵列模式)里手动编辑打印内容. 打印引擎自动按填充模式, 将数据填充至全部区域, 支持自动分页.
内容可以是固定文字,也可使用
填充变量名.字段名引用填充变量的字段, 每个单元格可以引用多个字段, 也可嵌入条码,二维码(可引用填充变量), 非常灵活. -
空行标识线: 在数据条数不够一页(包括翻页后不够一页)是, 可以指定是否打印斜线标识空行, 主要用于对数据完整性有较高要求的场景. 可以整个区域打印一条斜线,也可打印多条斜线每行一条.
表格数据块是打印精灵报表的核心, 需要说明的是, 每张报表可以有多个表格, 每个表格里面可以有多个数据块, 可以组合成非常非常复杂的表格, 满足各种业务的需求.
使用方法
报表创建的目的是使用, 使用方法和打印一般的标签并没有太大的差别, 只需要在API调用时, 送入对应的明细变量即可, 不管是JS API, DLL, 还是云打印模式, 使用方法都是相同的.
以JS API为例,送货单的打印代码为:
1const p=await SPIRIT.open(opt);
2p.PrintLabel('8225e719-f7b1-4b47-bebe-50db34dbad14', {
3 "订单编号":"2025070101", "收货人":"XX公司", "收货人地址":"XX省XX市XX区XX路XX号",
4 "材料明细":[["螺丝3x10", "PN0001", "30mm x 10mm", "100"], ["螺母", "PN0002", "100mm", "150"]]
5});
6p.close();
小结
打印精灵通过创新设计, 提供了非常简洁的界面和API接口, 可以作为高级报表打印工具, 迅速开发各类报表,如订单,送货单等. 由于编辑界面简洁, API调用方便, 配合打印精灵的云打印功能, 可以为没有能力开发自有信息系统的中小企业提供极大方便. 在我们的客户里, 有的企业利用多维表格等低代码/零代码开发工具 + 打印精灵实现了低成本的企业管理平台, 我们将在后续的文章里给大家介绍.
常见问题
如何在报表里打印页码?
打印精灵的打印引擎在打印表格时, 可以自动分页, 在引擎内部会维护标签当前页和标签总页数两个变量, 并暴露给用户, 用户可以像任何其他内置变量一样使用, 一般可以在表头或表尾加.
如何在报表里打印条码或二维码?
分两种情况, 如果是公共信息, 比如订单ID, 那么可以按标准的方法添加条码即可. 如果是在明细里打印, 即明细的每一行都有要打印不同的条码, 请用如下方法操作:
- 明细区域(数据块设置), 填充变量选KeyValue模式.
- 在明细区域的第一行,对应的单元格里, 添加条码, 设置条码内容为变量:
填充变量名.字段名. - 将条码绑定到单元格, 这一步非常重要, 只有绑定了单元格, 才会自动填充到整个明细区域.
