标签纸打印
在单据模板里把每条记录排成标签,按份数复制、从指定格开始、在 A4 上多行多列排版,网页预览与 PDF 版面一致。
概述
试管标签、物料标签、档案标签这类场景,一张 A4 标签纸上要排好几行几列的小标签,每条记录可能还要打印多份,并且纸张用过一部分后要从中间的某一格接着打。单据模板的「标签纸」功能把分组的每个明细区域当作一张标签,按行列自动排到纸上,不再纵向堆叠。网页预览与服务端生成的 PDF 使用同一份布局,位置一致。
功能入口
设计器 > 选中单据模板中的分组 > 右侧「分组属性」面板 > 「标签纸」> 打开「启用标签纸」。
操作步骤
- 在单据模板里新建分组,选择数据集。每条记录一张标签时,「分组字段」选记录的唯一键(如标本号);留空则每行数据自成一张标签。
- 在分组的「明细」区域里摆放标签内容。明细区域的高度就是一张标签的高度,组件从区域左边缘开始排。
- 打开「启用标签纸」,设置「每排标签数」「每页排数」「列间距(mm)」「行间距(mm)」。标签宽度默认按内容区宽度、列数、列间距均分,也可在「标签宽度(mm)」中指定。纸张的页边距就是标签纸的页边距,在「页面设置」中调整。
- 需要每条记录打印多份时,设置「每条份数」,或在「份数字段」选择数据集中的字段,按每条记录该字段的值打印份数。
- 需要从中间某一格开始时,先在报表参数中新增一个整数参数,名称与「起始格参数」一致(默认
labelStart),不要设置默认值;打印时在查询表单或调用参数中给它赋值。 - 预览并用 PDF 试打,核对每格位置。
参数说明
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 每排标签数 | 一行排几张标签(列数) | 大于等于 1,默认 1 |
| 每页排数 | 一页排几行 | 大于等于 1,默认 1;页面放不下时按能放下的行数排 |
| 列间距(mm) | 左右相邻标签的间距 | 大于等于 0,默认 0 |
| 行间距(mm) | 上下相邻标签的间距 | 大于等于 0,默认 0 |
| 标签宽度(mm) | 一张标签的宽度 | 0 表示按内容区宽度、列数、列间距均分,默认 0 |
| 每条份数 | 每条记录打印的固定份数 | 0 到 999,默认 1;0 表示不打 |
| 份数字段 | 按每条记录该字段的值取份数 | 数据集字段名;字段值取不到数字时用「每条份数」;负数按 0;超过 999 按 999 |
| 起始格参数 | 提供「从第 K 格开始」的报表参数名 | 默认 labelStart |
| 默认起始格 | 参数没有值时的起始格 | 大于等于 1,默认 1 |
起始格按行优先数:第 1 排从左到右依次是第 1、2、3 格,再接第 2 排。前 K-1 格留白;K 大于每页格数时,按每页格数取余。起始格只作用于第一页,后续页从第一格排起。
标签内可使用 $$group.$copyIndex(当前是第几份,从 1 起)和 $$group.$copyCount(本条记录共几份),例如显示「第 2/3 张」。同一条记录复制出的标签,其余字段、分组变量完全相同。
示例
A4 纸上排 3 列 8 行试管标签,每个标本按「试管数」字段打印份数,上次用到第 7 格:
- 分组数据集选「标本」,分组字段留空,明细区域高 30 mm,放一个条码组件和两个文本组件。
- 「每排标签数」填 3,「每页排数」填 8,「列间距(mm)」填 2,「行间距(mm)」填 2,「份数字段」选
试管数。 - 报表参数新增整数参数
labelStart,不设默认值;打印时填 7。 - 某标本
试管数为 3 时,该标本连续排 3 张标签,标签里的「第几张」文本用'第' + $$group.$copyIndex + '/' + $$group.$copyCount + '张'。
注意事项
注意:标签模式下,分组的组头、组尾和明细下的嵌套分组不使用;「跨页重复组头」等分页选项不生效。
注意:单次输出的标签总数上限为 20000 张,超出部分不再排版。
注意:起始格参数需要在报表参数中声明,并且不要设置默认值;声明了默认值(例如 1)后,参数始终有值,会覆盖「默认起始格」。
注意:标签内容超出自己那一格的部分不显示,网页预览与 PDF 一致。
提示:标签纸与预印格对位的细微偏差,可用「报表设置」中的「套打偏移(mm)」整体平移,见 套打与定位。