行動條碼 (QR Code)

在 Crystal Reports 中產生行動條碼 (QR Code)

1. 請先確認您的 SAP Crystal Reports 版本位元(Bitness)。
SAP Crystal Reports 2008 / 2011 / 2013 / 2016 為 32 位元。
SAP Crystal Reports 2020 / 2025 為 64 位元。

1.1 如果您的 SAP Crystal Reports 是 64 位元,請依照下列指示註冊 64 位元的 cruflbcs_x64.dll。
以右鍵點擊命令提示字元,並選擇「以系統管理員身分執行」。
qr code command prompt as administrator



若要註冊 64 位元 DLL,請輸入下列命令:
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll



1.2 如果您的 SAP Crystal Reports 是 32 位元,請依照下列指示註冊 32 位元的 cruflbcs.dll。
輸入下列命令以註冊 32 位元的 cruflbcs.dll:
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll

register cruflbcs.dll commands for qr code



若看到下列彈出視窗,即代表您的註冊已成功。
register cruflbcs.dll succeeded



2. 打開您的 Crystal Report。以滑鼠右鍵點擊「公式欄位 (Formula Fields)」,並從快顯功能表中選擇「新建... (New...)」。在名稱輸入框中輸入 "qrcode1",然後點擊「使用編輯器 (Use Editor)」。

qrcode create formula in crystal reports

3. 經過行動條碼編碼後,即使是很短的字串,傳回的碼字 (codewords) 也可能超出您的預期。然而,Crystal Reports 不允許在單個公式欄位中超過 254 個字元。因此,在套用 BcsQRCode 字型之前,我們必須將 QR Code 碼字分成不同的部分,並將它們串接在同一個「文字物件 (Text Object)」中。要了解需要多少個公式欄位,請使用以下函式:

BCSQRCodeFormulaNoForCR({Data.Code})

qrcode crystal reports UFL

4. 如果傳回的碼字多於 255 個字元,請按如下所示建立多個公式欄位。然後將它們依序拖放到同一個文字物件中。

qrcode create formula crystal reports

Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 1, 1, 0, 0)

Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 2, 1, 0, 0)

Local stringVar codestr := "QRCode" + Chrw(13) + chrw(10) + {Test.Data};
BCSQRCodeEncodeCR({Test.Data}, 3, 1, 0, 0)

公式欄位的第一個參數是要編碼的字串。
公式欄位的第二個參數是索引。
公式欄位的第三個參數是錯誤更正等級。其值範圍為 1 到 4,分別代表 L07、M15、Q25 和 H30。如果預設設置為 0,則對應錯誤更正等級 M15。

對於 Girocode 或歐洲零售支付理事會 (EPC) QR Code 的使用者,請設置以下公式:

str = "BCD" & "&#0a;" & "001" & "&#0a;" & "1" & "&#0a;" & "SCT" & "&#0a;" & "BFSW3E33BER" & "&#0a;" & "Collection folder" & "&#0a;" & "DE33100206000001194701 " & "&#0a;" & "EUR123.45"
BCSQRCodeEncodeCR(str, 1, 1 )
BCSQRCodeEncodeCR(str, 2, 1)
BCSQRCodeEncodeCR(str, 3, 1)

請在每個資料段落後添加 & "&#0a;"。這將會被解析為 ASCII 碼 0A。

qrcode crystal reports UFL formula field

您會在報表中看到十六進位代碼。別擔心!這是因為您尚未套用 QR Code 條碼字型。

5. 以滑鼠右鍵點擊文字物件,並從快顯功能表中選擇「設定物件格式 (Format Object)」。然後選擇 "BcsQRcode" 作為該文字物件的字型。

QRCode barcode font crystal reports

6. 點擊確定按鈕。您將會在報表中看到行動條碼顯示出來。

QRCode barcode crystal reports

7. 如果您想在報中使用 GS1 二維條碼,請套用 BCSQRCodeEncodeCRGS1 公式。

BCSQRCodeEncodeCRGS1(str, 1, 0);
BCSQRCodeEncodeCRGS1(str, 2, 0);
BCSQRCodeEncodeCRGS1(str, 3, 0);

第一個參數是 str。在被 cruflbcs.dll 編碼為 GS1 二維條碼之前,您的資料必須符合以下格式:(17)190508(90)50921。請在每個應用程式識別碼 (AI) 的前後加上圓括號。在需要時,系統會自動為您添加 FNC1 字元。
第二個參數是您的公式索引。
第三個是錯誤更正等級。