Ga naar inhoud

Rapporten uitbreiden met de QR Pay

Deze documentatie legt uit hoe je een rapport in Business Central kunt uitbreiden met een QR Pay QR-CODE. De QR-Code wordt automatisch gegenereerd en toegevoegd tijdens het afdrukken van het rapport of bij het boeken of converteren van een document.

Procedure

Er zijn twee benaderingen om dit te bereiken:

  1. Aangepaste Rapporten:
    In aangepaste rapporten kun je de vereiste code direct in het rapport integreren.

  2. Standaard Rapporten:
    Voor standaard rapporten kun je een rapportuitbreiding maken die de juiste code implementeert.

Houd er rekening mee dat er verschillen zijn tussen Word Rapporten en RDLC Rapporten die tijdens de implementatie in overweging moeten worden genomen.

Vereisten

Voordat je begint, zorg ervoor dat aan de volgende vereisten is voldaan:

  • CORE moet worden verwezen in de uitbreiding.
  • QR Pay moet worden verwezen in de uitbreiding.
  • QR Pay moet zijn geactiveerd in de bijbehorende module-instellingen.

Leer meer over het maken van een Word Layout rapport in Microsoft Business Central.

Leer meer over het maken van een RDLC Layout rapport in Microsoft Business Central.

Instellingen in QR Pay

Om de juiste functionaliteit te waarborgen, moeten de volgende configuraties worden gemaakt voor het gemaakte/uitgebreide rapport in QR Pay:

  • De Report ID en Table Id voor het QR Pay Setup Record moeten worden ingesteld.
  • In de QR Pay Module Setup moeten alle noodzakelijke velden worden geconfigureerd.

Wijzig de bedragwaarde in de QR-Code generatie

  1. In deze sectie zullen we het QR-Code Bedrag wijzigen met een EventSubscriber.
  2. Maak een nieuw .al-bestand in Visual Studio Code of open een bestaand .al-bestand.
  3. Voeg de volgende code toe aan het geopende bestand:

    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
        // Bereken hier de aangepaste bedraglogica
        ParamAmountDecimal := NewValue;
        ParamIshandledBoolean := true;
    end;
    
    4. Gebruik de RecordRef om het nieuwe Bedrag te berekenen. 5. Stel de ParamIshandledBoolean in op true als deze waarde moet worden gebruikt.

Blokkeer QR-Code Generatie

  1. In deze sectie zullen we de QR-Code generatie blokkeren met een EventSubscriber.
  2. Maak een nieuw .al-bestand in Visual Studio Code of open een bestaand .al-bestand.
  3. Voeg de volgende code toe aan het geopende bestand:

    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. Gebruik de RecordRef om de bedrijfslogica aan te passen als de QR Code moet worden aangemaakt. 5. Stel de ParamIshandledBoolean in op true als de QR Code niet moet worden aangemaakt.

RDLC Rapporten uitbreiden

  1. In deze sectie zullen we een QR Pay QR-Code toevoegen aan een rapport naar keuze.
  2. Maak een nieuw .al-bestand in Visual Studio Code of open een bestaand .al-bestand dat het gewenste rapport uitbreidt.
  3. Voeg de volgende code toe aan het geopende bestand:

    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. Vervang "XXX" door de ID van het rapport dat je wilt uitbreiden (Rapport 1306 "Standaard Verkoop - Factuur en 117 Herinnering zijn al uitgebreid in de standaard van QR Pay).

  5. Publiceer de uitbreiding.
  6. Open Rapportlay-outs in Business Central.
  7. Zoek de lay-out die je wilt uitbreiden en klik op "Update en Download Lay-out".
  8. Open het gedownloade lay-outbestand.
  9. Voeg een afbeelding toe door "Invoegen" -> "Afbeelding" te selecteren.
  10. Positioneer de toegevoegde afbeelding waar je de barcode wilt laten verschijnen.
  11. Klik met de rechtermuisknop op de afbeelding en selecteer "Afbeeldingseigenschappen".
  12. Maak de volgende aanpassingen in het dialoogvenster "Afbeeldingseigenschappen":
    • Algemeen:
      • Naam: Barcode
      • Afbeeldingsbron: Database
      • Te gebruiken veld: =System.Convert.FromBase64String(Fields!SIM_QRPGlobal_BarcodeRDLCText.Value)
      • MIME-type: image/bmp
    • Grootte:
      • Weergave: Proportioneel aanpassen
    • Zichtbaarheid:
      • Expressie: =IsNothing(Fields!SIM_QRPGlobal_BarcodeRDLCText.Value) OR (Globals!PageNumber>1)
  13. Sla het bewerkte .rdl-bestand op.
  14. Ga terug naar Rapportlay-outs in Business Central en voeg de bewerkte lay-out toe:
    • Selecteer "Nieuw" om een nieuwe lay-out toe te voegen en upload het bewerkte bestand.
    • Alternatief kun je de bestaande lay-out vervangen door het bewerkte bestand.
  15. Koppel het rapport aan de nieuw gemaakte lay-out.
  16. Wanneer je het rapport afdrukt, zou de barcode correct moeten worden weergegeven.

Word Rapporten uitbreiden

  1. In deze sectie zullen we een QR Pay QR-Code toevoegen aan een rapport naar keuze.
  2. Maak een nieuw .al-bestand in Visual Studio Code of open een bestaand .al-bestand dat het gewenste rapport uitbreidt.
  3. Voeg de volgende code toe aan het geopende bestand:

    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. Vervang "XXX" door de ID van het rapport dat je wilt uitbreiden (Rapport 1306 "Standaard Verkoop - Factuur en 117 Herinnering zijn al uitgebreid in de standaard van QR Pay).

  5. Publiceer de uitbreiding.
  6. Open het Word-bestand van het rapport.
  7. Navigeer naar het "Ontwikkelaar" tabblad in het Word-document en selecteer "XML Mapping Pane".
    1. Klik met de rechtermuisknop op "Global_Barcode".
    2. Selecteer "Inhoudscontrole invoegen" en vervolgens "Afbeelding".
  8. Positioneer de afbeelding waar je de barcode wilt laten verschijnen in het document.
  9. Sla het Word-bestand op.
  10. Ga terug naar Business Central en upload het Word-bestand als een lay-out.
  11. Koppel de bewerkte lay-out aan het bijbehorende rapport.
  12. Bij het afdrukken van dit rapport zal de barcode nu worden weergegeven.

Zie ook