i used both but from 50107 it print in base64 which already saved in qr code field
report 50107 "Invoice List Report"
{
UsageCategory = ReportsAndAnalysis;
ApplicationArea = All;
Caption = 'Invoice List Report';
DefaultLayout = Word;
WordLayout = 'Layouts\InvoiceListReport.docx'; // upload layout in project
dataset
{
dataitem(Invoice; InvoiceTable)
{
column(InvoiceNo; Invoice.InvoiceNo) { }
column(UUID; Invoice.UUID) { }
column(QRCode; QRCode) { }
trigger OnAfterGetRecord()
begin
GenerateQRCode();
end;
}
}
requestpage
{
layout
{
area(content)
{
group(Group)
{
field(InvoiceNo; Invoice.InvoiceNo) { ApplicationArea = All; }
}
}
}
}
var
QRCode: Text;
local procedure GenerateQRCode()
var
BarcodeSymbology2D: Enum "Barcode Symbology 2D";
BarcodeFontProvider2D: Interface "Barcode Font Provider 2D";
begin
BarcodeFontProvider2D := Enum::"Barcode Font Provider 2D"::IDAutomation2D;
BarcodeSymbology2D := Enum::"Barcode Symbology 2D"::"QR-Code";
// take invoice UUID or your ZATCA QR text here
QRCode := BarcodeFontProvider2D.EncodeFont(Invoice.UUID, BarcodeSymbology2D);
end;
}
report 50108 "qr Report"
{
UsageCategory = ReportsAndAnalysis;
ApplicationArea = All;
Caption = 'Invoice List Report';
DefaultLayout = Word;
WordLayout = 'Layouts\qrReport.docx'; // Upload your Word layout here
dataset
{
dataitem(Invoice; InvoiceTable)
{
column(InvoiceNo; Invoice.invoiceNO) { }
column(UUID; Invoice.UUID) { }
// Encoded text for QR (will render as barcode in Word using BC QRCode font)
column(QRCodeTxt; QRCodeTxt) { }
trigger OnAfterGetRecord()
begin
GenerateQRCode();
end;
}
}
requestpage
{
layout
{
area(content)
{
group(Group)
{
field(InvoiceNo; Invoice.invoiceNO) { ApplicationArea = All; }
}
}
}
}
var
QRCodeTxt: Text;
local procedure GenerateQRCode()
var
BarcodeSymbology2D: Enum "Barcode Symbology 2D";
BarcodeFontProvider2D: Interface "Barcode Font Provider 2D";
begin
if Invoice.QRCode = '' then
exit;
BarcodeFontProvider2D := Enum::"Barcode Font Provider 2D"::IDAutomation2D;
BarcodeSymbology2D := Enum::"Barcode Symbology 2D"::"QR-Code";
QRCodeTxt := BarcodeFontProvider2D.EncodeFont(Invoice.QRCode, BarcodeSymbology2D);
end;
}