Search Results for

    Show / Hide Table of Contents

    Dynamische Druckberichte

    report bietet die Möglichkeit, nach bestimmten Ereignissen automatisch Berichte zu drucken. . Die Liste an Ereignissen ist vordefiniert, kann aber durch durch eine Anpassung wie hier exemplarisch gezeigt erweitert werden. Hier sind drei Anpassungen notwendig.

    Den Prozess definieren

    Zuerst muss der Prozesscode ergänzt werden.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_Dynamic Printout Mgt", 'AddCustomProcessCode', '', true, true)]
    local procedure AddCustomProcessCodes(var NameValueBuffer: Record "Name/Value Buffer")
    begin
        PrintProcesses.AddNewEntry('Custom1', 'additional Information');
        PrintProcesses.AddNewEntry('Custom2', 'additional Information');
    end;
    
    

    Parameter:

    • NameValueBuffer: Dieser temporäre Datensatz wird genutzt um die Prozesscodes und eine kurze Beschreibung zu speichern (Standard Funktionalität)

    Die Datenbasis des Prozesses definieren

    Wenn Sie einen eigenen Prozess definieren sollten Sie report als zusätzliche Informationen mitgeben, welche Datenbasis dieser Prozess hat. Diese Informationen werden verwendet, um den Prozess zu spezifizieren, und ermöglichen es dem System, Filterausdrücke bei der Einrichtung zu verwenden.

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_Dynamic Printout Mgt", 'AddCustomProcessTableIDs', '', true, true)]
    local procedure AddMyProcessTables(ProcessCode: Code[20]; var BaseTableID: Integer; var SubTableID: Integer)
    begin
        Case ProcessCode of
            'Custom1':
                BaseTableID := Database::"Sales Header";
            'Custom2':
                begin
                    BaseTableID := Database::"Purchase Header";
                    SubTableID := Database::"Purchase Line";
                end;
        end;
    end;
    

    Parameter:

    • ProcessCode: Der Code des aktuellen Prozesses
    • BaseTableID: Die Tabellennummer der Datensatzes
    • SubTableID: Eine optionale zusätzliche Untertabelle

    Den automatischen Druck auslösen

    Um an einer vorbereiteten Stelle im Prozess den Druck auszulösen wird ein Code ähnlich wie dieser benötigt.

    local procedure StartMyDynamicPrint()
    var
        DynPrintMgt: Codeunit "RPT_Dynamic Printout Mgt";
    begin
        DynPrintMgt.StartPrintProcess_External('Custom1', Rec, '');
    end;
    
    

    Der zu startende Prozess wird an report mit der Information der aktuellen Datensätze geschickt. (der zweite Datensatz ist Optional) Je nach Einrichtung wird der passende Beleg gestartet.

    Navigation

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