如何使用 BarTender 按顺序整理或打印每条记录的多份副本?
问题
假设您的 BarTender 文档当前连接到一个包含 3 行的 SQL Server 数据库表,并且您希望为每条记录打印多份标签;那么 BarTender 打印标签的顺序是怎样的?
适用范围
BarTender Designer 2019 及更高版本
答案
根据您设置的打印份数,BarTender 会先打印所有第 1 条记录的副本,然后打印所有第 2 条记录的副本,以此类推,直到所有选中的记录都打印完毕。所以,如果您设置每条记录打印两份,打印顺序将会是:1,1,2,2,3,3
BarTender 不支持逐份打印,也就是说,没有任何选项可以让 BarTender 先完整打印一遍所有记录,然后再重复打印,从而得到如下顺序的副本:1,2,3,1,2,3
不过,虽然 BarTender 本身不支持该功能,下面介绍了一种可能的变通方法来实现类似效果。
例如,假设下图中的表格 'A' 是当前连接到 BarTender 文档的表格,表格 'B' 是表格 'A' 的副本,如果将两者合并,您就可以在打印第二份之前,先打印所有记录的第一份。
图 1-1
在 BarTender 中,您可以通过自定义 SQL 语句(见图 1-2)来实现,无需对数据库文件或表格做任何更改。您可以使用 SQL UNION ALL 运算符,将两个或多个 SELECT 语句的结果合并在一起(见图 1-3)。返回的数据会存储并显示在同一个表格中。
SELECT column1, column2, ... FROM table_A;
UNION ALL
SELECT column1, column2, ... FROM table_A;
图 1-2
图 1-3
更多信息
*根据您需要打印的重复行数,UNION ALL 运算符可能需要多次使用,并插入在相同的 SELECT 语句之间。
*如果要包含重复记录,必须使用 UNION ALL,而不是 UNION。
*此方法有一些限制:
- 在 BarTender 中,指定自定义 SQL 语句(高级) 选项仅支持部分数据库类型。
- 如果 SQL 查询较为复杂,在 BarTender 中指定自定义 SQL 语句可能会比较棘手。