通过数据库集成打印时出现选中记录数量的倍数(重复)
症状
当我通过数据库集成进行打印时,并没有只打印我选择的记录。相反,我得到了多倍于我想要打印的总记录数的打印结果。
举个实际的例子,假设有如下场景:
- 某个操作将5条记录放入表中
- 集成检测到有5条记录,开始逐条处理
- 集成处理第1条记录,发送打印请求。标签文档也连接到同一个表,它检测到有5条记录,于是为这次任务打印了5张标签。
- 集成删除了1条记录,现在还剩4条记录。
- 处理下一条记录时,集成为这条记录发送打印请求。标签文档发现有4条记录,于是打印了4张标签。
如此循环,直到所有记录都被删除。可以想象,如果有100条记录,这个问题会迅速变得难以控制。
解决方法/答案
请确保 BarTender 文档没有被设置/配置为直接连接到与集成相同的数据库。
相反,请确保标签文档使用的是命名数据源。
请参考这篇关于如何正确设置数据库集成的文章:使用数据库触发器打印文档
如果你只是在 BarTender 直接打印时遇到打印数量问题
你可以参考这里寻找可能的解决方法:从 BarTender 打印时打印数量不正确
更多信息
问题通常出在受影响的 BarTender 文档连接到了与数据库集成用作触发器的同一个数据库。
当数据库发生变化触发集成时,BarTender 文档会被调用,但它引用的是整个数据库。因此,这会导致 BarTender 文档打印数据库中的所有记录。
当客户查询他们想要打印的总选中记录时,就会出现“总选中记录的倍数”这种情况。此时,“整个数据库”中的结果其实就是他们选择打印的那些记录。因此,如果 BarTender 文档仍然直接连接到数据库,最终结果就会是他们选中记录数的倍数。