Zum Inhalt

Erweiterte Funktionalität im Berichtsdruck - OnReportPost

Einleitung

Die erweiterte Funktionalität der überarbeiteten OnReportPost-Funktion bietet mehr Flexibilität bei der Handhabung von Berichtsausdrucken. Die neue Funktion ermöglicht es den Benutzern, Berichte in einem anderen Datensatz zu archivieren. Hier bekommen Sie Überblick über die neue Funktionalität und ihre Anwendung.

Die überladene OnReportPost-Funktion

AL
procedure OnReportPostDataItem(ParamRRecordRef: RecordRef; ParamReportNoInteger: Integer; ParamReportPreviewBoolean: Boolean; ParamSaveToRecordRef: RecordRef) ReturnEntryNoBigInteger: BigInteger
    var
        LocalRecordSIMDMSReportSetup: Record "SIM_DMS Report Setup";
        LocalR2RecordRef: RecordRef;
        LocalFFieldRef: FieldRef;
        LocalF2FieldRef: FieldRef;
        LocalKKeyRef: KeyRef;
        LocaliInteger: Integer;
    begin
        if GlobalCodeunitSIMDMSSI.GetDisableShadowPrint() then exit;
        if GlobalCodeunitSIMDMSSI.GetIsEmailBodySending() then exit;

        if ParamRRecordRef.Number() = 0 then exit;
        if not LocalRecordSIMDMSReportSetup.Get(ParamReportNoInteger) then exit;

        if (not ParamReportPreviewBoolean) and (not GlobalCodeunitSIMDMSSI.GetPdfPrint() and GuiAllowed()) then
            if ParamRRecordRef.FindSet() then
                repeat
                    LocalR2RecordRef.Open(ParamRRecordRef.Number());
                    LocalKKeyRef := ParamRRecordRef.KeyIndex(1);
                    for LocaliInteger := 1 to LocalKKeyRef.FieldCount() do begin
                        LocalFFieldRef := LocalKKeyRef.FieldIndex(LocaliInteger);
                        LocalF2FieldRef := LocalR2RecordRef.Field(LocalFFieldRef.Number());
                        LocalF2FieldRef.SetRange(LocalFFieldRef.Value());
                    end;
                    LocalR2RecordRef.FindFirst();

                    ReturnEntryNoBigInteger := SaveRelation(LocalR2RecordRef, ParamReportNoInteger, true, false, ParamSaveToRecordRef);

                    LocalR2RecordRef.Close();
                until ParamRRecordRef.Next() = 0;
    end;

Beschreibung des Codes

Die Prozedur 'OnReportPostDataItem' nimmt mehrere Parameter entgegen, darunter 'ParamRRecordRef' und 'ParamSaveToRecordRef'. Der Code prüft zunächst, ob die Schatten- oder PDF-Druckfunktionen deaktiviert sind. Falls aktiviert, kopiert er die entsprechenden Daten aus der Quelldatensatzreferenz in die Zieldatensatzreferenz. Die Funktion 'SaveRelation' wird aufgerufen, um die Beziehung zwischen den Datensätzen herzustellen und das Ergebnis zurückzugeben.

Anwendungsbeispiel

Diese Funktion ist besonders nützlich, wenn ein Bericht aus einer Quelltabelle erstellt und in einer anderen Tabelle archiviert werden soll. So kann z.B. ein Bericht, der auf Tabelle A basiert, mit Hilfe der Funktion OnReportPostDataItem so verschoben werden, dass er mit Tabelle B verknüpft wird.

Vorteile

Erhöhte Flexibilität: Die Benutzer können Berichte in verschiedene Datensätze hochladen, was eine flexiblere Datenverwaltung ermöglicht. Verbesserte Benutzerfreundlichkeit: Die Funktion wurde als Reaktion auf das Feedback der Benutzer entwickelt, um die allgemeine Benutzerfreundlichkeit zu verbessern. Effizienz: Die Möglichkeit, Berichte gezielt an verschiedene Datensätze anzuhängen, erhöht die Effizienz und Genauigkeit der Datenverwaltung.