打印精灵表格使用技巧: 报表开发
上一篇文章打印精灵表格操作技巧(一),我们介绍了打印精灵表格操作的常用技巧, 总体上打印精灵表格操作上手难度低,使用方式与 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格式(见后面的填充方式).
-
填充方式: 指定自动还是手动填充. 当数据格式是数组时,可以自动按顺序把数据填充到明细区. 手动方式, 需要在数据块第一行单元格里手动填写打印内容, 内容可以是固定文字,也可引用填充变量的字段, 引用时使用
填充变量名.字段名
即可, 打印引擎将自动维护行对应关系, 使用着无需关心. 每个单元格可以引用任意数量的字段, 也可嵌入条码,二维码等内容, 而条码,二维码亦可引用填充变量的字段, 非常灵活. -
空行标识线: 在数据条数不够一页(包括翻页后不够一页)是, 可以指定是否打印斜线标识空行, 主要用于对数据完整性有较高要求的场景. 可以整个区域打印一条斜线,也可打印多条斜线每行一条.
表格数据块是打印精灵报表的核心, 需要说明的是, 每张报表可以有多个表格, 每个表格里面可以有多个数据块, 可以组合成非常非常复杂的表格, 满足各种业务的需求.
使用方法
报表创建的目的是使用, 使用方法和打印一般的标签并没有太大的差别, 只需要在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模式.
- 在明细区域的第一行,对应的单元格里, 添加条码, 设置条码内容为变量:
填充变量名.字段名
. - 将条码绑定到单元格, 这一步非常重要, 只有绑定了单元格, 才会自动填充到整个明细区域.