How to generate QR code in FastReport VCL with Delphi/Lazarus code

2022-08-24

How to generate QR code in FastReport VCL with Delphi/Lazarus code

In recent years, QR codes have become an everyday part of our lives. They are a two-dimensional barcodes that can be easily read by a digital device and that store information as a series of pixels. They have become widely used in trade, logistics, and production.

Unlike a simple barcode, a QR code is read horizontally and vertically. Thus, they store more data. The ease of recognition and ease of use of QR codes predetermined their popularity. With FastReport VCL you can easily use QR codes in your reports. Let's look аt this possibility more closely.

Launch the report generator designer. Select the "QRCode" component from the pop-up menu of the "Barcode object" tool.

Selecting the “QRCode” component

 

When added to a page, the QRCode will look like this:

QR-Code in the report

 

Double click on it to open the 2D barcode editor. This can also be done from the context menu by selecting the "Edit" item:

Barcode editing

 

This is what the barcode editor looks like:

2D barcode editor

 

Let's look аt its main functions in detail:

1. In the “General” tab, you can change the size of the barcode, add a signature or rotate it.

2. On the “Other options” tab:

  • If CodePage <> 0 - ECI mode is used;
  • You can select the text encoding in the Encoding property;
  • The ErrorLevels property ensures redundancy for proper reading of data with a partially corrupted code image;
  • QuietZone detects if the QR code has a white frame.

3. In the expression editor, on the “Code” line, you can:

  • Access data source fields;
  • Use system variables;
  • Use various functions

In the “ExpressionPreset” object property, you can select presets for generаting receipts according to the specification of the Swiss code:

Selecting presets for the QR code

 

You can generate your own QR codes of various types, for this you need to specify a string of a certain format and set it in the Text property.

Let's take a closer look at these types with examples of barcodes and data:

URI is a Uniform Resource Identifier. It is a string to identify various files, documents, images, email, web service, etc.:

https://www.fast-report.com/en/

https://www.fast-report.com/en/

 

EmailAddress – E-mail address:

support@fast-report.com

support@fast-report.com 

EmailMessage – email text:

MATMSG:TO:support@fast-report.com;SUB:FastReport VCL question;BODY:Hello, I have a question about FastReport VCL.;

MATMSG:TO:support@fast-report.com;SUB:FastReport VCL question;BODY:Hello, I have a question about FastReport VCL.;

 

Geolocation – coordinates for  the real geographic location:

geo:-50.737563,-79.490016,120

geo:-50.737563,-79.490016,120

 

SMS – text message:

SMSTO:(71) 555-4444:Hello, Dolly! I'm fine!

 SMSTO:(71) 555-4444:Hello, Dolly! I'm fine!

 

Call – telephone number:

tel:(71) 555-4444

tel:(71) 555-4444

 

Wi -fi – information for connecting to wi-fi:

WIFI:T:WPA;S:Honeypot;P:youarewelcome;H:true;

WIFI:T:WPA;S:Honeypot;P:youarewelcome;H:true;

 

Let’s create а QR code from Delphi/Lazarus code:

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 := 'support@fast-report.com';
 
 { If you want to set EmailMessage type: }
 bcQR.Text :=
 'MATMSG:TO:support@fast-report.com;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;

 

We have looked аt how to use QR codes in FastReport VCL. This component brings more possibilities for using this report generator in modern workflow.

December 11, 2023

New S3 transport (Amazon) in FastReport VCL

In this article, we will look at the new transport in S3 (Amazon) for FastReport VCL, which is an object storage of files and buckets.
November 27, 2023

Simplifying the work with TableObject in the report designer

New features for the "Table" object in the report designer will allow you to create templates faster through the context menu.
November 27, 2023

Merging text objects in FastReport .NET

The new version of FastReport .NET 2024.1 introduces the merging of adjacent text objects with identical content.
Fast Reports
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.