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
需要網際網路
批次處理效能 極高 (即時) 中等 (受網路延遲影響)
安裝難度 需要執行環境環境 隨插即用