Bartender通过扫描枪实现对Excel数据表格数据筛选进行实时打印
近日接到客户诉求:希望通过扫描器扫描相关条码,自动带出需要的数据并实现自动打印。经分析,我们采用 BarTender 表单+ 扫描枪 + Excel 数据源查询脚本 的方式,实现了一键扫码、自动填充、条件打印的智能化流程。
整个方案无需额外开发系统,基于 BarTender 原生功能即可实现,部署简单、维护方便,特别适用于生产、仓储等需要快速录入与打印的场景。
下面详细介绍实现逻辑:
一、数据准备示例
我们使用一个简单的 Excel 文件 DEMO.xlsx 存放基础数据,结构如下:
库存编码 | 商品编码 | 商品名称 |
---|---|---|
BX202509001 | 202500911118 | 测试商品1 |
BX202509002 | 202500911125 | 测试商品2 |
BX202509003 | 202500911132 | 测试商品3 |
BX202509004 | 202500911149 | 测试商品4 |
BX202509005 | 202500911156 | 测试商品5 |
BX202509006 | 202500911163 | 测试商品6 |
BX202509007 | 202500911170 | 测试商品7 |
BX202509008 | 202500911187 | 测试商品8 |
BX202509009 | 202500911194 | 测试商品9 |
BX202509010 | 202500911200 | 测试商品10 |
二、整体流程图
PS:点击图片可放大查看。
三、实现步骤概要
1. 创建 BarTender 模板
分别创建需要的命名数据源:库存编码,商品编码,商品名称;其中库存编码放置于模板之外并将打印条件设置为“从不”。
2. 创建 BarTender 表单
在 BarTender 中新建一个 表单
添加一个文本框输入框,绑定命名数据源:库存编码
在文本输入属性中勾选通过“条形码扫描仪插入数据(B)”
2. 设置事件脚本
(1)获取扫描输入并校验
Dim inventoryCode inventoryCode = Trim(Format.NamedSubStrings("库存编码").Value) If inventoryCode = "" Then MsgBox "请扫描库存编码!", vbExclamation, "提示" Format.CancelPrinting Exit Sub End If
(2)查找编码并回填数据
Dim xlBook, xlSheet Set xlBook = xlApp.Workbooks.Open(excelPath) Set xlSheet = xlBook.Sheets("Sheet1") Dim foundCell Set foundCell = xlSheet.Range("A:A").Find(inventoryCode, , , 1, 1) ' 完全匹配 If Not foundCell Is Nothing Then Dim productBarcode, productName productBarcode = foundCell.Offset(0, 1).Value productName = foundCell.Offset(0, 2).Value If Not IsNull(productBarcode) Then Format.NamedSubStrings("商品条码").Value = CStr(productBarcode) End If If Not IsNull(productName) Then Format.NamedSubStrings("商品名称").Value = CStr(productName) End If Else MsgBox "未找到库存编码:【" & inventoryCode & "】", vbCritical, "查询失败" Format.CancelPrinting End If
VBScript 调用 Excel COM 接口及相关处理这里不在赘述,可查看《BarTender 通过事件脚本VBScript实现打印扣减库存功能》一文中的介绍
四、完整功能演示
文章就写到这里吧,有相关标签设计开发需求的可以联系老陈。
文章版权声明:除非注明,否则均为BarcodeX贝恪原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...