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
需要互联网
批量处理性能 极高 (即时) 中等 (受网络延迟影响)
安装难度 需要运行时环境 即插即用