RDLC Integration

Diese Anleitung zeigt, wie Sie den VR Pay QR-Code in bestehende Rechnungsreports einbauen können.

Übersicht

Die VR Pay Extension stellt drei Datenfelder bereit, die Sie in Ihren Reports verwenden können:

Feld
Typ
Beschreibung

VRPayQRCodeImageSOU

Text (Base64)

Das QR-Code-Bild als Base64-String

VRPayPaymentURLSOU

Text

Die Payment-URL als Text

VRPayQRCodeEnabledSOU

Boolean

Ob QR-Codes aktiviert sind

Schritt 1: Report Extension erstellen

Erstellen Sie eine Report Extension für Ihren bestehenden Rechnungsreport:

reportextension 50100 "My Sales Invoice QR Ext" extends "My Sales Invoice Report"
{
    dataset
    {
        add(Header)  // oder der Name Ihres Header-DataItems
        {
            column(VRPayQRCodeImage; VRPayQRCodeImage)
            {
            }
            column(VRPayPaymentURL; VRPayPaymentURL)
            {
            }
            column(VRPayQRCodeEnabled; VRPayQRCodeEnabled)
            {
            }
        }

        modify(Header)
        {
            trigger OnAfterAfterGetRecord()
            begin
                LoadVRPayData(Header."No.");
            end;
        }
    }

    trigger OnPreReport()
    begin
        InitVRPaySettings();
    end;

    var
        VRPayQRCodeImage: Text;
        VRPayPaymentURL: Text;
        VRPayQRCodeEnabled: Boolean;

    local procedure InitVRPaySettings()
    var
        VRPaySetup: Record "VRPaySetupSOU";
    begin
        if VRPaySetup.Get() then
            VRPayQRCodeEnabled := VRPaySetup."Enable QR Code on Invoice";
    end;

    local procedure LoadVRPayData(InvoiceNo: Code[20])
    var
        SalesInvoiceHeader: Record "Sales Invoice Header";
        VRPayQRCode: Record "VRPayQRCodeSOU";
        VRPayQRCodeMgt: Codeunit "VRPayQRCodeMgtSOU";
        VRPayPaymentLinkMgt: Codeunit "VRPayPaymentLinkMgtSOU";
    begin
        Clear(VRPayQRCodeImage);
        Clear(VRPayPaymentURL);

        if not VRPayQRCodeEnabled then
            exit;

        // Bestehenden QR-Code laden
        VRPayQRCodeImage := VRPayQRCodeMgt.GetQRCodeImageAsBase64ForInvoice(InvoiceNo);

        // Wenn kein QR-Code existiert, automatisch erstellen
        if VRPayQRCodeImage = '' then begin
            if SalesInvoiceHeader.Get(InvoiceNo) then begin
                if VRPayQRCodeMgt.GetOrCreateQRCodeForInvoice(SalesInvoiceHeader, VRPayQRCode) then
                    VRPayQRCodeImage := VRPayQRCode.GetQRCodeImageAsBase64();
            end;
        end;

        // Payment URL laden oder generieren
        VRPayPaymentURL := VRPayPaymentLinkMgt.GetPaymentURLForInvoice(InvoiceNo);
        if VRPayPaymentURL = '' then begin
            if SalesInvoiceHeader.Get(InvoiceNo) then
                VRPayPaymentURL := VRPayPaymentLinkMgt.GenerateDirectPaymentURL(SalesInvoiceHeader);
        end;
    end;
}

Schritt 2: RDLC Layout anpassen

2.1 Report in Visual Studio öffnen

  1. Exportieren Sie das RDLC-Layout aus Business Central.

  2. Öffnen Sie die .rdl-Datei in Visual Studio.

  3. QR-Code-Bereich hinzufügen (siehe unten).

  4. Layout speichern und in BC importieren.

2.2 QR-Code Bild hinzufügen

Fügen Sie ein Image-Element an der gewünschten Stelle ein:

circle-exclamation

2.3 Payment URL als Text hinzufügen (optional)

2.4 Überschrift hinzufügen (optional)

Schritt 3: Komplettes RDLC-Beispiel

Hier ein vollständiges Beispiel für einen QR-Code-Bereich:

Schritt 4: Layout importieren

  1. Speichern Sie die .rdl-Datei.

  2. In Business Central: Suchen Sie nach "Berichtslayouts".

  3. Finden Sie Ihren Report und klicken Sie auf "Importieren".

  4. Wählen Sie die bearbeitete .rdl-Datei.

  5. Optional: Als Standardlayout festlegen.

circle-info

Sichtbarkeit

Die Visibility-Bedingung stellt sicher, dass der QR-Code nur angezeigt wird wenn:

  1. QR-Codes im VR Pay Setup aktiviert sind.

  2. Ein QR-Code-Bild vorhanden ist.

Word Layout

Für Word-Layouts verwenden Sie einen Custom XML Part:

Oder einfacher: Verwenden Sie das mitgelieferte Word-Layout VRPayInvoiceWithQRCodeSOU.docx als Vorlage.

Last updated