Zum Inhalt

Berichte mit QR Pay erweitern

Diese Dokumentation erklärt, wie ein Bericht in Business Central mit einem QR Pay QR-CODE erweitert wird. Der QR-Code wird während des Berichtsdrucks oder beim Buchen bzw. Umwandeln eines Dokuments automatisch generiert und hinzugefügt.

Vorgehensweise

Es gibt zwei Ansätze, um dies zu erreichen:

  1. Individuelle Berichte:
    In individuellen Berichten kann der erforderliche Code direkt in den Bericht integriert werden.

  2. Standardberichte:
    Bei Standardberichten kann eine Berichtserweiterung erstellt werden, die den entsprechenden Code implementiert.

Bitte beachten Sie, dass es Unterschiede zwischen Word-Berichten und RDLC-Berichten gibt, die bei der Implementierung berücksichtigt werden müssen.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass folgende Voraussetzungen erfüllt sind:

  • CORE muss in der Erweiterung referenziert werden.
  • QR Pay muss in der Erweiterung referenziert werden.
  • QR Pay muss in der entsprechenden Modulumgebung aktiviert sein.

Mehr erfahren über das Erstellen eines Word-Layout-Berichts in Microsoft Business Central.

Mehr erfahren über das Erstellen eines RDLC-Layout-Berichts in Microsoft Business Central.

Einrichtung in QR Pay

Für die korrekte Funktionalität müssen folgende Konfigurationen für den erstellten/erweiterten Bericht in QR Pay vorgenommen werden:

  • Die Berichts-ID und die Tabellen-ID für den QR Pay Setup-Datensatz müssen eingerichtet werden.
  • Im QR Pay Modul Setup sollten alle notwendigen Felder konfiguriert sein.

Ändern des Betrag-Werts in der QR-Code-Generierung

  1. In diesem Abschnitt werden wir den QR-Code Betrag mit einem EventSubscriber ändern.
  2. Erstelle eine neue .al-Datei in Visual Studio Code oder öffne eine bestehende .al-Datei.
  3. Füge den folgenden Code in die geöffnete Datei ein:

    AL
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"SIM_QRP Generation Mgt", 'OnBeforeCalculateAmountEPC', '', false, false)]
    procedure SubOnBeforeCalculateAmountEPC(ParamRecordRef: RecordRef; var ParamAmountDecimal: Decimal; var ParamIshandledBoolean: Boolean)
    var
        NewValue: Decimal;
    begin
        // Berechne hier die benutzerdefinierte Betrag-Logik
        ParamAmountDecimal := NewValue;
        ParamIshandledBoolean := true;
    end;
    
    4. Verwende den RecordRef, um den neuen Amount zu berechnen 5. Setze den ParamIshandledBoolean auf true, wenn dieser Wert verwendet werden soll

Erweiterung von RDLC-Berichten

  1. In diesem Abschnitt fügen wir einem Bericht Ihrer Wahl einen QR Pay QR-Code hinzu.
  2. Erstellen Sie eine neue .al-Datei in Visual Studio Code oder öffnen Sie eine vorhandene .al-Datei, die den gewünschten Bericht erweitert.
  3. Fügen Sie den folgenden Code in die geöffnete Datei ein:

    AL
    reportextension 5227509 "SIM_QRP Test" extends XXX
    {
        dataset
        {
            add(Header)
            {
                column(SIM_QRPGlobal_Barcode2; GlobalWordRecordSIMCORETempTable."SIM_QRP QR Code")
                { }
                column(SIM_QRPGlobal_BarcodeRDLCText; GlobalBarcodeRDLCText)
                { }
            }
            modify(Header)
            {
                trigger OnAfterAfterGetRecord()
                begin
                    GlobalBarcodeRDLCText := GlobalCodeunitSIMQRPGenerationMgt.FillTempBlobForReport(Header.RecordId, CopyStr(CurrReport.OBJECTID(false), 7), GlobalWordRecordSIMCORETempTable);
                end;
            }
        }
        var
            GlobalWordRecordSIMCORETempTable: Record "SIM_CORE Temp Table";
            GlobalCodeunitSIMQRPGenerationMgt: Codeunit "SIM_QRP Generation Mgt";
            GlobalBarcodeRDLCText: Text;
    }
    
  4. Ersetzen Sie "XXX" durch die ID des Berichts, den Sie erweitern möchten (Die Berichte 1306 "Standard Sales - Invoice" und 117 "Reminder" sind im Standard von QR Pay bereits erweitert).

  5. Veröffentlichen Sie die Erweiterung.
  6. Öffnen Sie Berichtslayouts in Business Central.
  7. Suchen Sie das Layout, das Sie erweitern möchten, und klicken Sie auf "Layout aktualisieren und herunterladen".
  8. Öffnen Sie die heruntergeladene Layoutdatei.
  9. Fügen Sie ein Bild hinzu, indem Sie "Einfügen" -> "Bild" auswählen.
  10. Positionieren Sie das hinzugefügte Bild an der Stelle, an der der Barcode angezeigt werden soll.
  11. Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie "Bildeigenschaften".
  12. Nehmen Sie die folgenden Anpassungen im Dialogfeld "Bildeigenschaften" vor:
    • Allgemein:
      • Name: Barcode
      • Bildquelle: Datenbank
      • Zu verwendendes Feld: =System.Convert.FromBase64String(Fields!SIM_QRPGlobal_BarcodeRDLCText.Value)
      • MIME-Typ: image/bmp
    • Größe:
      • Anzeige: Proportional skalieren
    • Sichtbarkeit:
      • Ausdruck: =IsNothing(Fields!SIM_QRPGlobal_BarcodeRDLCText.Value) OR (Globals!PageNumber>1)
  13. Speichern Sie die bearbeitete .rdl-Datei.
  14. Gehen Sie zurück zu Berichtslayouts in Business Central und fügen Sie das bearbeitete Layout hinzu:
    • Wählen Sie "Neu", um ein neues Layout hinzuzufügen, und laden Sie die bearbeitete Datei hoch.
    • Alternativ können Sie das bestehende Layout durch die bearbeitete Datei ersetzen.
  15. Verknüpfen Sie den Bericht mit dem neu erstellten Layout.
  16. Beim Drucken des Berichts sollte der Barcode korrekt angezeigt werden.

Erweiterung von Word-Berichten

  1. In diesem Abschnitt fügen wir einem Bericht Ihrer Wahl einen QR Pay QR-Code hinzu.
  2. Erstellen Sie eine neue .al-Datei in Visual Studio Code oder öffnen Sie eine vorhandene .al-Datei, die den gewünschten Bericht erweitert.
  3. Fügen Sie den folgenden Code in die geöffnete Datei ein:

    AL
    reportextension 5227509 "SIM_QRP Test" extends XXX
    {
        dataset
        {
            add(Header)
            {
                column(SIM_QRPGlobal_Barcode2; GlobalWordRecordSIMCORETempTable."SIM_QRP QR Code")
                { }
                column(SIM_QRPGlobal_BarcodeRDLCText; GlobalBarcodeRDLCText)
                { }
            }
            modify(Header)
            {
                trigger OnAfterAfterGetRecord()
                begin
                    GlobalBarcodeRDLCText := GlobalCodeunitSIMQRPGenerationMgt.FillTempBlobForReport(Header.RecordId, CopyStr(CurrReport.OBJECTID(false), 7), GlobalWordRecordSIMCORETempTable);
                end;
            }
        }
        var
            GlobalWordRecordSIMCORETempTable: Record "SIM_CORE Temp Table";
            GlobalCodeunitSIMQRPGenerationMgt: Codeunit "SIM_QRP Generation Mgt";
            GlobalBarcodeRDLCText: Text;
    }
    
  4. Ersetzen Sie "XXX" durch die ID des Berichts, den Sie erweitern möchten (Die Berichte 1306 "Standard Sales - Invoice" und 117 "Reminder" sind im Standard von QR Pay bereits erweitert).

  5. Veröffentlichen Sie die Erweiterung.
  6. Öffnen Sie die Word-Datei des Berichts.
  7. Navigieren Sie zum Tab "Entwicklertools" im Word-Dokument und wählen Sie "XML-Mappingbereich".
    1. Klicken Sie mit der rechten Maustaste auf "Global_Barcode".
    2. Wählen Sie "Inhaltssteuerelement einfügen" und dann "Bild".
  8. Positionieren Sie das Bild an der gewünschten Stelle im Dokument, an der der Barcode erscheinen soll.
  9. Speichern Sie die Word-Datei.
  10. Gehen Sie zurück zu Business Central und laden Sie die Word-Datei als Layout hoch.
  11. Verknüpfen Sie das bearbeitete Layout mit dem entsprechenden Bericht.
  12. Beim Drucken dieses Berichts wird nun der Barcode ausgegeben.