Ga naar inhoud

Uitbreiding van rapporten met de Document Inbound Barcode

In deze documentatie wordt uitgelegd hoe u een rapport in Business Central kunt uitbreiden met een Document Inbound Barcode. De barcode wordt automatisch gegenereerd en toegevoegd tijdens het afdrukken van het rapport of bij het boeken of converteren van een document.

Werkwijze

Er zijn twee benaderingen om dit te bereiken:

  1. Aangepaste rapporten:
    In aangepaste rapporten kunt u de vereiste code direct in het rapport integreren.

  2. Standaardrapporten:
    Voor standaardrapporten is het mogelijk om een rapportuitbreiding te maken die de benodigde code implementeert.

Houd er rekening mee dat er verschillen zijn tussen Word-rapporten en RDLC-rapporten die in aanmerking moeten worden genomen bij de implementatie.

Vereisten

Voordat u begint, zorgt u ervoor dat de volgende vereisten zijn ingevuld:

  • CORE moet als referentie in de uitbreiding worden opgenomen.
  • Document Central moet als referentie in de uitbreiding worden opgenomen.
  • Document Inbound moet als referentie in de uitbreiding worden opgenomen.
  • Document Central moet correct gelicentieerd zijn.
  • Document Central en Document Inbound moeten worden geactiveerd in de overeenkomstige module-instellingen.

Lees meer over het maken van een rapport met een Word-indeling in Microsoft Business Central.

Lees meer over het maken van een rapport met een RDLC-indeling in Microsoft Business Central.

Instellingen in Document Central

Voor een correcte werking moeten de volgende configuraties worden gemaakt voor het aangemaakte/uitgebreide rapport in Document Central:

  • Een nummerreeks voor de barcode moet worden ingesteld in de mapping. De mapping moet gebaseerd zijn op de tabel van het rapport.
  • In de Rapportinstellingen moeten de volgende punten worden gecontroleerd:
  • Een Barcode Content Type moet worden gedefinieerd.
  • Barcode Printen moet worden ingeschakeld.

Uitbreiding van RDLC-rapporten

  1. In deze sectie voegen we een Document Inbound barcode toe aan een door u geselecteerd rapport.
  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 "DMSDI_EXT Test" extends XXX
    {
        dataset
        {
            add(Header)
            {
                column(Global_Barcode; GlobalBarcode)
                { }
            }
            modify(Header)
            {
                trigger OnAfterAfterGetRecord()
                var
                    LocalSIMDIBarcodeMgt: Codeunit "SIM_DI Barcode Management";
                    LocalCodeunitSIMDMSSI: Codeunit "SIM_DMS SI";
                    LocalEnumSIMDITypeOfBarcodes: Enum "SIM_DI Type of Barcodes";
                    LocalRRef: RecordRef;
                    LocalBarcodeText: Text;
                begin
                    if LocalCodeunitSIMDMSSI.GetPdfPrint() then
                        exit;
    
                    LocalRRef.Get(Header.RecordId());
                    LocalBarcodeText := LocalSIMDIBarcodeMgt.CreateBarcode(LocalRRef, Header."No.", '', XXX, false);
                    GlobalBarcode := LocalSIMDIBarcodeMgt.CreateLabel(LocalBarcodeText, 250, 600, true, Format(LocalEnumSIMDITypeOfBarcodes::Code128), 'PNG');
                end;
            }
        }
        var
            GlobalBarcode: Text;
    }
    

    Info

    In de Enum "LocalEnumSIMDITypeOfBarcodes" zijn alle ondersteunde barcode-types gedefinieerd. Om het barcode-type te wijzigen, kiest u eenvoudig de gewenste waarde uit deze Enum.

  4. Vervang "XXX" door de ID van het rapport dat u wilt uitbreiden (bijvoorbeeld 1306 voor de Verkoopfactuur).

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

Uitbreiding van Word-rapporten

  1. In deze sectie voegen we een Document Inbound barcode toe aan een geselecteerd rapport.
  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, of gebruik in plaats daarvan uw eigen Blob-veld in plaats van het Blob-veld van de tabel "SIM_CORE Temp Table". Zorg ervoor dat het veld de subtypen "Bitmap" heeft of geen subtypen heeft gedefinieerd.

    AL
    reportextension 5227509 "DMSDI_EXT Test" extends XXX
    {
        dataset
        {
            add(Header)
            {
                column(Global_Barcode; GlobalRecordSIMCORETempTable."Blob 1")
                { }
            }
            modify(Header)
            {
                trigger OnAfterAfterGetRecord()
                var
                    LocalSIMDIBarcodeMgt: Codeunit "SIM_DI Barcode Management";
                    LocalCodeunitBase64Convert: Codeunit "Base64 Convert";
                    LocalCodeunitSIMDMSSI: Codeunit "SIM_DMS SI";
                    LocalRecordRef: RecordRef;
                    LocalEnumSIMDITypeOfBarcodes: Enum "SIM_DI Type of Barcodes";
                    LocalOutStream: OutStream;
                    LocalBarcodeText: Text;
                    LocalBarcodeBase64Text: Text;
                begin
                    if LocalCodeunitSIMDMSSI.GetPdfPrint() then
                        exit;
    
                    LocalRecordRef.Get(Header.RecordId());
                    LocalBarcodeText := LocalSIMDIBarcodeMgt.CreateBarcode(LocalRecordRef, Header."No.", '', XXX, false);
                    LocalBarcodeBase64Text := LocalSIMDIBarcodeMgt.CreateLabel(LocalBarcodeText, 250, 600, true, Format(LocalEnumSIMDITypeOfBarcodes::Code128, 'PNG');
                    GlobalRecordSIMCORETempTable."Blob 1".CreateOutStream(LocalOutStream);
                    LocalCodeunitBase64Convert.FromBase64(LocalBarcodeBase64Text, LocalOutStream);
                end;
            }
        }
        var
            GlobalRecordSIMCORETempTable: Record "SIM_CORE Temp Table";
    }
    

    Info

    In de Enum "LocalEnumSIMDITypeOfBarcodes" zijn alle ondersteunde barcode-types gedefinieerd. Om het barcode-type aan te passen, kiest u eenvoudig de gewenste waarde uit deze Enum.

  4. Vervang "XXX" door de rapport-ID die u wilt uitbreiden (bijvoorbeeld 1306 voor de Verkoopfactuur).

  5. Publiceer de uitbreiding.
  6. Open het Word-bestand van het rapport.
  7. Ga naar het tabblad "Ontwikkelaar" in het Word-document en selecteer "XML-koppelingsvenster".
    1. Klik met de rechtermuisknop op "Global_Barcode".
    2. Kies "Inhoudselement invoegen" en vervolgens "Afbeelding".
  8. Positioneer de afbeelding op de plaats in het document waar de barcode moet verschijnen.
  9. Sla het Word-bestand op.
  10. Ga terug naar Business Central en upload het Word-bestand als lay-out.
  11. Koppel de bewerkte lay-out aan het betreffende rapport.
  12. Bij het afdrukken van dit rapport wordt de barcode nu gegenereerd.

Zie ook