PowerBuilder 条码集成
关于本地 DLL 处理、云端 API 集成以及 DataWindow 字体渲染的权威指南。
01
本地 .NET Core DLL 集成
利用 DotNetObject 可以直接在客户端机器上执行复杂的条码编码逻辑,无需担心网络延迟。这对于 QR Code、Aztec 和 DataMatrix 等二维条码非常理想。
完整 PowerScript 配置示例
DotNetAssembly lnv_Asm
DotNetObject lnv_Encoder
Long ll_ret
lnv_Asm = Create DotNetAssembly
// 确保已安装 .NET Runtime
ll_ret = lnv_Asm.LoadWithDotNetCore("cruflbcsnet.dll")
IF ll_ret = 1 THEN
lnv_Encoder = lnv_Asm.CreateInstance("Barcodesoft.Encoder")
// Encode 函数返回专门为 BCS 字体格式化的字符串
ls_barcode_data = lnv_Encoder.Encode(ls_input)
dw_1.SetItem(row, "barcode_col", ls_barcode_data)
ELSE
MessageBox("错误", "无法加载 .NET DLL。请检查运行时环境。")
END IF
02
云端 REST API(零代码配置)
对于无需本地安装的部署,可以使用 REST API。PowerBuilder 的 DataWindow 通过 Bitmap() 表达式即可实现集成。
计算列(Computed Field)表达式:
Bitmap("https://www.barcodesoft.com/barcode/qrcode/token=YOUR_TOKEN&text=" + id_field + "&format=png")
提示:使用小尺寸的 PNG 格式可以缩短 DataWindow 的加载时间。
03
DataWindow 设计步骤
为了确保条码能够被正确扫描,请在 DataWindow 画板(Painter)中进行以下 UI 调整:
- 字体选择: 将列字体设置为对应的条码字体(例如:
BCSQRcode)。 - 抗锯齿: 如果条码看起来模糊,请在 Windows 字体设置中禁用“TrueType”平滑处理。
- 列宽: 确保列宽足够,防止因“裁剪”导致条码无法识别。
- 自动高度(Autosize Height): 如果编码的数据量差异较大,请启用此属性。
选择适合您的方案
| 特性 | .NET DLL | REST API |
|---|---|---|
| 需要互联网 | 否 | 是 |
| 批量处理性能 | 极高 (即时) | 中等 (受网络延迟影响) |
| 安装难度 | 需要运行时环境 | 即插即用 |