在 Crystal Reports 中生成二维码
如何在 Crystal Reports 中生成二维码?
要在 Crystal Reports 中生成二维码,请使用 Barcodesoft UFL 库中的 BCSQRCodeEncodeCR 函数创建一个新的公式字段。将您的 database 字段作为参数传递,把该公式字段拖放到您的设计画布上,然后应用 BcsQRCode 字体系列。
-
步骤 1:确定 SAP Crystal Reports 的位数并注册 DLL
确定您安装的 SAP Crystal Reports 版本的位数。SAP Crystal Reports 2008 至 2016 为 32 位,而 SAP Crystal Reports 2020 和 2025 为 64 位。
对于 64 位 Crystal Reports (2020 / 2025):
以管理员身份运行命令提示符并执行:
cd "C:\Program Files\Common Files\Barcodesoft\FontUtil"
%systemroot%\System32\regsvr32.exe cruflbcs_x64.dll
对于 32 位 Crystal Reports (2008–2016):
以管理员身份运行命令提示符并执行:
cd "C:\Program Files (x86)\Common Files\Barcodesoft\FontUtil"
regsvr32.exe cruflbcs.dll
-
步骤 2:找到 Barcodesoft UFL 函数
在 Crystal Reports 中,依次展开函数资源管理器层次结构:函数列表 ⇒ 附加函数 ⇒ COM 和 .NET UFLs (u212com.dll) ⇒ Visual Basic UFLs。双击 BCSQRCodeEncodeCR 函数。
-
步骤 3:创建新的公式字段
右键单击 公式字段,然后从右键菜单中选择 新建...。将新字段命名为 "BcsQRCode1",然后单击 "使用编辑器"。
在二维码编码过程之后,即使是很短 growth 的字符串也可能包含比预期更多的码字。因为 Crystal Reports 限制公式字段最多为 255 个字符,所以您必须在应用字体之前,将编码后的二维码拆分为独立的部分,并在文本对象中将它们连接起来。使用以下函数来检查您需要多少个公式字段:
BCSQRCodeFormulaNoForCR({Test.Data}) -
步骤 4:创建多个公式字段
如果
BCSQRCodeFormulaNoForCR({Test.Data})返回的值大于 1,请按照以下列表创建多个公式字段。然后,将它们按顺序放入同一个文本对象中。BCSQRCodeEncodeCR({Test.Data}, 1, 0)
BCSQRCodeEncodeCR({Test.Data}, 2, 0)
BCSQRCodeEncodeCR({Test.Data}, 3, 0)
参数说明: 第 1 个参数是要编码的字符串;第 2 个是分段索引;第 3 个是纠错级别(1-4 分别代表 L07、M15、Q25 和 H30。设为 0 表示自动选择默认的 M15 纠错)。
-
步骤 5:在报表中插入文本对象
将您创建的所有公式字段按顺序拖放到此文本对象中。最初,您会在报表布局中看到十六进制的后备代码。请不要担心,这是正常现象,因为此时还没有应用条形码字体。
-
步骤 6:应用 BcsQRCode 字体样式
右键单击该文本对象,然后从右键菜单中选择 格式化对象。在“字体”选项卡中,选择 "BcsQRCode" 作为您的字体系列。
-
步骤 7:验证二维码生成
单击 确定 按钮。后备字符将立即在您的报表布局中渲染为完全可扫描的二维码。
如何生成符合 GS1 标准的二维码
如果您的项目需要符合 GS1 标准的格式,而不是标准的文本编码,请在多个拆分公式中使用专用的 BCSQRCodeEncodeCRGS1 函数:
BCSQRCodeEncodeCRGS1(str, 1, 0);
BCSQRCodeEncodeCRGS1(str, 2, 0);
BCSQRCodeEncodeCRGS1(str, 3, 0);
GS1 参数规范:
- 第 1 个参数 (str): 原始输入数据字符串。请确保您的格式在每个应用标识符 (AI) 前后严格使用圆括号进行分组,例如
(17)190508(90)50921。该库底层的 DLL 处理程序会自动注入必要的 FNC1 分隔符。 - 第 2 个参数: 目标公式的顺序段索引。
- 第 3 个参数: 所需的纠错级别配置。