Search Results for

    Show / Hide Table of Contents

    Barcodes

    report nutzt die System-eigene Logik um Barcodes in den verschiedensten Ausprägungen im Beleg-Druck verfügbar zu machen. Diese setzten allerdings auf eine seitens Microsoft definierte Logik und Schriftarten auf. Es gibt allerdings die Möglichkeit diese durch eingene Routinen zu ersetzten.

    Alternative Barcode-Logik nutzen

    Es wird je nach Barcode Art (1D oder 2D Barcode) ein Publisher aus der addon|base App genutzt, die aber identisch arbeiten.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"base_extras", 'OnBefore1DBarCode', '', true, true)]
    local procedure OnBefore1DBarCode(var Handled: Boolean; var String: Text; BarcodeSymbology: Enum "Barcode Symbology"; var BarcodeString: Text)
    begin
        // do some coding
    end;
    
    
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"base_extras", 'OnBefore2DBarCode', '', true, true)]
    local procedure OnBefore2DBarCode(var Handled: Boolean; var String: Text; BarcodeSymbology: Enum "Barcode Symbology 2D"; var BarcodeString: Text; ToHtml: Boolean)
    begin
        // do some coding
    end;
    
    

    Parameter:

    • Handled: Dieser Parameter wird auf true gesetzt um die Standard Verarbeitung zu unterbinden.
    • String: Beinhaltet den Text, der zu einem Barcode werden soll.
    • BarcodeSymbology: Standard Enum, beinhaltet das benötigte Barcode Format
    • BarcodeString: Der codierte Barcode als Text
    • toHtml: Falls der Barcode in einem HTML Format vorliegen soll (zum Druck z.B. innerhalb eines Fließtextes). (nur für 2D

    Barcodes im Texteditor nutzen

    Wenn Sie Barcodes innerhalb des Texteditors einsetzen wollen, ist dieses z.B. über einen Platzhalter möglich, den Sie bereits erstellt haben.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_Report Functions", 'ProcessCustomPlaceholder', '', true, true)]
    local procedure ProcessCustomPlaceholder(VarRec: Variant; var Placeholder: Code[20]; var ResultString: Text; ReportObjectSetup: Record "RPT_Object Setup"; var ReportParameters: Record "Name/Value Buffer")
    var       
        extra: Codeunit base_extras;
        BarcodeFormat: Enum "BASE Barcode Symbology";
        TmpBarcodeString: Text;
    begin
        case Placeholder of
            '55':
             begin
                //Do some coding
                TmpBarcodeString := 'This is a dope barcode';
                TmpBarcodeString := extra.EncodeBarcode(ResultString, BarcodeFormat::"QR-Code",true);               
                sender.AddTmpTextLine(ResultString,'',TmpBarcodeString,0,7,'2DAutomation','',0,0);              
             end;               
        end
    end;
    

    Der ermittelte Text, der in einen Barcode formatiert werden soll, wird über die EncodeBarcode Funktion aus addon|base mit der Information des gewünschten Barcode Formates übertragen. Im Anschluss können sie (optional) den Text mittels der AddTmpTextLine Funktion aus der RPT_Report Functions mit einem gewünschten Format versehen.

    Die Funktion AddTmpTextLine hat hier folgende Parameter:

    • NewString: Der neu formatierte Text
    • VarValue: Der zu formatierende Text
    • FontStyle: Formatierungs-Optionen (Fett,Kursiv,FettKursiv) muss hier 0 sein.
    • FontFamily: Die Schriftart die für diesen Barcode zum Einsatz kommt, z.B. 2DAutomation
    • FontColor: (optionale) HTML konforme Schriftfarbe
    • Align: Ausrichtung (Linksbündig,Zentriert,Rechtsbündig) muss hier 0 sein.
    • Effekt: Formatierungs-Option (durchgestrichen,unterstrichen) muss hier 0 sein.

    Navigation

    • Anpassungsprogrammierung
    • Übersicht report
    • Übersicht smart|addons
    In This Article
    Back to top 2025 © COSMO CONSULT - Data protection - Imprint