今天在Bartender里发现了一个功能,在Bartender Integration里使用,数据库记录触发打印功能时,能够实现一笔数据记录,打印多张标签的功能。
这个解决方式是通过在Bartender Designer里的数据库的自定义SQl来实现的:
Bartender Integration里的一笔数据库记录触发打印功能,数据记录会传递到模版文件里定义的“具名数据源”,例如:其中SNList存放的是要打印标签的SN清单,SN之间以逗号隔开;
在数据库的自定义SQL里面,把SNList的内容转为记录集,即每个SN一笔数据;
标签字段的值引用数据库字段SN,这样,有多少个SN就会打印多少张标签了。
划重点,在自定义SQL里面,引用具名数据源的值,要使用'?SNList'这种格式,具名数据源名称前加问号,再用单引号括起来。
采用这种方案的优点就是简单,对我现有的打印方案影响不大,基本上只需要修改特定的模板文件,但是最主要的是解决了下面这个问题,也是研究这个解决方法的初衷:
大家知道,标签纸有各种样式的,有一种是多列的,也就是在一行上面会有多张标签,如果采用Bartender Integration常规的一笔数据触发一次、打印一张标签的方式,那么只会在第一列打印标签,其它列是用不上的。
为解决这个问题,做了多种尝试,最初是想在Bartender Integration里实现一笔数据触发,执行多次打印操作,发现这样不行,最终还是会打印在第一列标签纸上,因此只能在Bartender Designer标签设计上想办法了,先是在Bartender Integration里执行SQL把SNList拆分成单个SN插入到表里,然后在模版文件里引用这个表的内容打印标签,这样可以实现希望的功能,只是这个方法有些复杂,还要定义额外的表,因此继续尝试,终于找到了上面的方法。