一文搞懂BarTender文档事件脚本

条码老陈08-09147阅读0评论

wechat_2025-08-09_144023_500.png

在使用 BarTender 做标签打印时,如果你只是拖拖控件、设设数据源,那只能算入门。真正让 BarTender 变得强大的,是它的事件脚本(Event Control Scripts)

这些脚本能让你在特定时间点自动执行逻辑,比如计算价格、校验输入、记录日志、生成序列号等。但 BarTender 官方文档翻译生硬,术语晦涩,很多人看了反而更迷糊。

别急,这篇文章就用大白话,把每个事件脚本的触发时机、典型用途、注意事项讲清楚,帮你彻底搞懂。

  1. OnScreenUpdate(屏幕更新时)

    • 设计时预览效果: 写脚本实时修改某个文本(比如根据输入框算价格),你能立刻在屏幕上看到变化,方便调试。

    • 记录日志(非打印): 把屏幕上显示的值赋给一些隐藏的、用于记录的对象。

    • 触发时机: 最灵活!不限于打印时。只要BarTender界面中,你绑定了脚本的那个数据源对象的值在屏幕上被刷新显示了,脚本就会运行。

    • 典型用途:设计时预览效果: 写脚本实时修改某个文本(比如根据输入框算价格),你能立刻在屏幕上看到变化,方便调试。


                              记录日志(非打印): 把屏幕上显示的值赋给一些隐藏的、用于记录的对象。

    • 关键点: 这是唯一一个在设计界面就能触发的事件,与打印流程无关。

  2. OnPrePrompt(显示输入表单前)

    • 触发时机: 在弹出“数据输入表单”(让用户填信息的窗口)之前运行。

    • 典型用途: 在用户看到表单前,预先设置表单里某些字段的默认值或状态(比如禁用某些输入框)。

  3. OnPostPrompt(关闭输入表单后)

    • 触发时机: 用户填完表单,点击了表单上的“确定”(或类似)按钮之后运行。

    • 典型用途: 处理用户输入的数据! 这是最常见的脚本位置之一。你可以在这里校验用户输入、根据输入计算其他值、组合复杂字符串、决定后续流程等。这时用户输入的数据才真正可用。

  4. OnNewRecord(读取新数据记录时)

    • 触发时机: 在打印时,BarTender从你的外部数据源(数据库、文本文件)读取一条新记录(一行新数据)时运行。

    • 典型用途: 为当前这条新记录进行数据处理。例如,根据这条记录里的字段A的值,计算出字段B的值并赋给某个对象。通常每个标签对应一条记录,所以这个事件脚本一般“每个标签执行一次”。

    • 限制: 只有数据源来自“文件”或“数据库”时才有意义。

  5. OnSerialize(序列化发生时)

    • 触发时机: 当BarTender准备对一个对象进行序列化(通常是递增或递减,比如序列号+1)时运行。

    • 典型用途: 在序列号真正改变之前或之后,执行一些自定义逻辑。比如检查序列号是否达到阈值、记录旧的序列号值、或者根据特定规则生成非简单的+1序列号。(稍微进阶一些,新手可能不常用到)

  6. OnIdenticalCopies(打印每个项目时 - 即使副本)

    • 触发时机: 非常特殊! 在打印期间,为每一个实际发送给打印机的“项目”(可以理解为一个物理标签)运行,即使这个项目是上一张标签的完全相同的一份副本。

    • 典型用途: 当你必须为每一张物理打印出来的标签(哪怕是内容一模一样的副本)都执行一次脚本时。例如,每张标签都要生成一个唯一ID或记录精确打印时间戳。

    • 重要代价: 使用这个事件会强制禁用BarTender的“打印机份数优化”功能(即告诉打印机“打5份”,本来只发一次数据)。BarTender必须为每一份都单独生成一次数据,这可能会显著降低打印速度。除非必要,否则慎用!

  7. OnPrintStart(打印作业开始时)

    • 触发时机: 整个打印作业(可能包含多个标签)即将正式开始发送到打印机之前运行。(注意:官方原文此处描述可能有误,常见理解是作业开始前)

    • 典型用途: 执行整个打印作业只需要做一次的初始化工作。比如初始化计数器、连接外部系统、记录作业开始日志。

  8. OnPrintEnd(打印作业结束时)

    • 触发时机: 整个打印作业(所有标签)已经成功完成发送后运行。

    • 典型用途: 执行收尾工作。比如关闭外部连接、写入作业完成日志、重置状态、弹出自定义完成提示。

  9. OnPrintCancel(取消打印作业时)

    • 触发时机: 用户或系统取消了正在进行的打印作业时运行。

    • 典型用途: 执行清理操作。比如回滚某些操作、记录取消日志、释放资源。

  10. OnAutoSelectedEvent(自动选择事件)

    • 触发时机: 这是一个“智能”事件。当你把数据源类型设为“多行脚本”但不指定具体事件时,BarTender会根据你的脚本内容、模板设置(序列化、份数)等自动分析并决定一个它认为最合适的执行频率(比如整个作业一次或每个标签一次)。

    • 典型用途: 如果你写了一个简单的脚本,不确定或者不在乎精确的执行时刻(只要BarTender觉得合理就行),可以用这个。它简化了配置。如果你指定了上面任何一种具体事件,那么“自动选择”就不会生效。


wechat_2025-08-09_143909_335.png

文章版权声明:除非注明,否则均为BarcodeX贝恪原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,147人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码