Zum Inhalt

Berichte mit QR Pay erweitern

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

Vorgehensweise

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

  1. Benutzerdefinierte Berichte:
    In benutzerdefinierten Berichten können Sie den erforderlichen Code direkt in den Bericht integrieren.

  2. Standardberichte:
    Für Standardberichte können Sie eine Berichtserweiterung erstellen, 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.

Anforderungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • CORE muss in der Erweiterung referenziert werden.
  • QR Pay muss in der Erweiterung referenziert werden.
  • QR Pay muss im entsprechenden Modul-Setup aktiviert sein.

Erfahren Sie mehr über die Erstellung eines Word-Layoutberichts in Microsoft Business Central.

Erfahren Sie mehr über die Erstellung eines RDLC-Layoutberichts in Microsoft Business Central.

Einrichtung in QR Pay

Um die korrekte Funktionalität sicherzustellen, müssen die folgenden Konfigurationen für den erstellten/erweiterten Bericht in QR Pay vorgenommen werden:

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

Ändern des Betragswerts in der QR-Code-Generierung

  1. In diesem Abschnitt werden wir den QR-Code-Betrag mit einem EventSubscriber ändern.
  2. Erstellen Sie eine neue .al-Datei in Visual Studio Code oder öffnen Sie eine vorhandene .al-Datei.
  3. Fügen Sie 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
        // Berechnen Sie hier die benutzerdefinierte Betragslogik
        ParamAmountDecimal := NewValue;
        ParamIshandledBoolean := true;
    end;
    
    4. Verwenden Sie den RecordRef, um den neuen Betrag zu berechnen. 5. Setzen Sie ParamIshandledBoolean auf true, wenn dieser Wert verwendet werden soll.

Blockieren der QR-Code-Generierung

  1. In diesem Abschnitt werden wir die QR-Code-Generierung mit einem EventSubscriber blockieren.
  2. Erstellen Sie eine neue .al-Datei in Visual Studio Code oder öffnen Sie eine vorhandene .al-Datei.
  3. Fügen Sie den folgenden Code in die geöffnete Datei ein:

    AL
    1
    2
    3
    4
    5
    6
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"SIM_QRP Generation Mgt", 'OnBeforeGenerateQRCode', '', false, false)]
    procedure SubOnBeforeGenerateQRCode(ParamRecordRef: RecordRef; var ParamIshandledBoolean: Boolean)
    begin
        if ParamRecordRef.TableNo = 18 then
            ParamIshandledBoolean := true;
    end;
    
    4. Verwenden Sie den RecordRef, um die Geschäftslogik anzupassen, wenn der QR-Code erstellt werden soll. 5. Setzen Sie ParamIshandledBoolean auf true, wenn der QR-Code nicht erstellt werden soll.

RDLC-Berichte erweitern

  1. In diesem Abschnitt werden wir einen QR Pay QR-Code zu einem Bericht Ihrer Wahl hinzufügen.
  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 (Bericht 1306 "Standard Sales - Invoice und 117 Reminder sind bereits im Standard von QR Pay 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 Layout-Datei.
  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 erscheinen 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 vorhandene Layout durch die bearbeitete Datei ersetzen.
  15. Verknüpfen Sie den Bericht mit dem neu erstellten Layout.
  16. Wenn Sie den Bericht drucken, sollte der Barcode korrekt angezeigt werden.

Word-Berichte erweitern

  1. In diesem Abschnitt werden wir einen QR Pay QR-Code zu einem Bericht Ihrer Wahl hinzufügen.
  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 (Bericht 1306 "Standard Sales - Invoice und 117 Reminder sind bereits im Standard von QR Pay 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-Zuordnungsbereich".
    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 Stelle, an der der Barcode im Dokument 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 der Barcode nun ausgegeben.

Siehe auch