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