天天看点

如何使用 Delphi/Lazarus 代码在 FastReport VCL 中生成二维码?

FastReport VCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并可以部署到云,Web,电子邮件和打印中。

近年来,二维码已经贯穿于我们日常生活。它们是一种二维条码,可以很容易地被数字设备读取,并以一系列像素的形式存储信息。它们已被广泛用于贸易、物流和生产领域。

如何使用 Delphi/Lazarus 代码在 FastReport VCL 中生成二维码?

与简单的条形码不同,二维码支持水平和垂直读取,因此,它们可以存储更多的数据。二维码的易识别性和易用性决定了它们的受欢迎程度。使用 ​​FastReport VCL​​,您可以轻松地在报告中使用 QR 码。接下来我们一起来看看示例。

启动报告生成器设计器。从 "条形码对象 "工具的弹出菜单中选择 "QRCode "组件。

如何使用 Delphi/Lazarus 代码在 FastReport VCL 中生成二维码?

添加到页面后,QRCode 将如下图所示:

双击它来打开二维条码编辑器。这也可以从上下文菜单中选择 "编辑 "项来完成:

如何使用 Delphi/Lazarus 代码在 FastReport VCL 中生成二维码?

下方展示的是条形码编辑器:

接下来我们看看它的主要功能:

1. 在“常规”选项卡中,您可以更改条码的大小、添加签名或旋转条码。

2. 在“其他选项”选项卡上:

  • 如果 CodePage <> 0 - 使用 ECI 模式;
  • 您可以在 Encoding 属性中选择文本编码;
  • ErrorLevels属性确保了冗余度,以便正确读取有部分损坏的代码图像的数据。
  • QuietZone 检测二维码是否有白框。

3. 在表达式编辑器的“代码”行中,您可以:

  • 访问数据源字段;
  • 使用系统变量;
  • 使用各种功能

在“ExpressionPreset”对象属性中,您可以根据瑞士代码的规范选择生成收据的预设 :

如何使用 Delphi/Lazarus 代码在 FastReport VCL 中生成二维码?

您可以生成各种类型的二维码,因此您需要指定一个特定格式的字符串并在 Text 属性中进行设置。

我们可以通过条形码和数据的示例看看这些类型:

URI是统一资源标识符。它是一个字符串,用于标识各种文件、文档、图像、电子邮件、Web 服务等:

电子邮件 地址 - 电子邮件地址:

EmailMessage  – 电子邮件文本:

MATMSG:TO:[email protected];SUB:FastReport VCL 问题;BODY:你好,我有一个关于 FastReport VCL 的问题。

地理位置 ——真实地理位置的坐标:

地理位置:-50.737563,-79.490016,120

短信 - 短信:

SMSTO:(71)555-4444:你好,多莉!我很好!

致电- 电话号码:

Wi  -fi – 连接到 wi-fi 的信息:

接下来让我们从Delphi/Lazarus代码中创建一个二维码。

uses frxBarcode2D;
procedure TForm1.Button1Click(Sender: TObject);
var
 bcQR: TfrxBarcode2DView;
begin
 bcQR := TfrxBarcode2DView(frxReport1.FindObject('Barcode2D1'));
 { Set the barcode type }
 bcQR.BarType := bcCodeQR;
 
 { Depending on the type you want to use, you need to }
 { leave one line that assigns the text of a certain format }
 
 { If you want to set url type: }
 bcQR.Text := 'https://www.fast-report.com/en/';
 
 { If you want to set EmailAddress type: }
 bcQR.Text := '[email protected]';
 
 { If you want to set EmailMessage type: }
 bcQR.Text :=
 'MATMSG:TO:[email protected];SUB:FastReport VCL question;BODY:Hello, I have a question about FastReport VCL.;';
 
 { If you want to set Geolocation type: }
 bcQR.Text := 'geo:-50.737563,-79.490016,120';
 
 { If you want to set SMS type: }
 bcQR.Text := 'SMSTO:(71) 555-4444:Hello, Dolly! I'' m fine ! ';
 
 { If you want to set Call type: }
 bcQR.Text := 'tel:(71) 555-4444';
 
 { If you want to set Wi-Fi type: }
 bcQR.Text := 'WIFI:T:WPA;S:Honeypot;P:youarewelcome;H:true;';
 frxReport1.ShowReport();
end;      

继续阅读