Einem Bericht ein Excel-Layout hinzufügen

Abgeschlossen

Sie müssen zwei Hauptaufgaben berücksichtigen, wenn Sie einen neuen Bericht erstellen. Zuerst definieren Sie ein Berichts-Dataset mit Datenelementen und Spalten. Dann entwerfen Sie das Berichtslayout.

Sie können mit dem Excel-Berichtslayout einen einfachen Bericht erstellen, der einen Datensatz druckt, und es dem Endbenutzer überlassen, ihn weiter zu ändern. Sie können die gesamte Palette der Funktionen in Excel wie Schieberegler, Diagramme, Charts, Pivot-Tabellen und PowerQuery verwenden, um den Bericht zu entwerfen.

Dies bietet dem Endbenutzer Flexibilität und Freiheit, da er das Erscheinungsbild eines Berichts ändern, weitere Ansichten hinzufügen sowie Daten filtern und sortieren kann. Ein solches Layout, das vom Endbenutzer entworfen wurde, kann importiert und als neues Layout verwendet werden. Die folgenden Informationen zeigen Ihnen, wie Sie einen einfachen Bericht basierend auf einem Excel-Layout erstellen können.

Sehen wir uns folgenden Bericht an:

report 50101 ExampleEXCELLayout
{
    Caption = 'ExampleEXCELLayout';
    UsageCategory = ReportsAndAnalysis;
    ApplicationArea = All;
    DefaultRenderingLayout = ExampleEXCELLayout;

    dataset
    {
        dataitem(Customer; Customer)
        {
            column(CustomerNo; "No.") { }
            column(CustomerName; Name) { }
            column(City; City) { }
            column(BalanceLCY; "Balance (LCY)") { }
        }
    }

    rendering
    {
        layout(ExampleEXCELLayout)
        {
            Type = Excel;
            LayoutFile = './src/Reports/EXCEL/ExampleEXCELLayout.xlsx';
            Caption = 'ExampleEXCELLayout';
            Summary = 'An example of an EXCEL Layout.';
        }
    }
}

Sie müssen den Rendering-Abschnitt eines Berichtsobjekts verwenden, um mehrere Layouts zu aktivieren. Innerhalb des Rendering-Abschnitts legen Sie einen oder mehrere Layout-Abschnitte fest. In jedem der Layout-Abschnitte legen Sie Details über den Pfad und Namen der Layout-Datei fest, stellen eine Eigenschaft Caption und eine Eigenschaft Summary bereit, die dem Benutzer auf der Seite Berichtslayouts in Business Central angezeigt werden.

Wenn Sie keine Beschriftung angeben, wird dem Benutzer der Name des Layouts angezeigt.

Das standardmäßige Layout kann mit der Berichtseigenschaft DefaultRenderingLayout festgelegt werden. Diese Eigenschaft kann nicht für Berichtserweiterungsobjekte eingerichtet werden, sondern nur für Berichtsobjekte.

Berichte, die die vorherige eigenschaftsbasierte Layoutspezifikation verwenden, können mit einer Codeaktion so konvertiert werden, dass sie den Renderingabschnitt verwenden. Stellen Sie sicher, dass Aktionen in Ihren AL-Erweiterungseinstellungen aktiviert sind, und platzieren Sie den Cursor auf einer der alten Layouteigenschaften, um die Aktion zu verwenden. Layouts vom Typ RDLC, Word, Excel und benutzerdefiniert können mit der neuen Rendering-Syntax angegeben werden.

Erstellen Sie die Erweiterung (STRG+UMSCHALT+B), um das Layout zu generieren. Die Datei ExampleEXCELLayout.xlsx wird im Stammverzeichnis des aktuellen Projekts erstellt.

Klicken Sie mit der rechten Maustaste auf die Datei ExampleEXCELLayout.xlsx, und wählen Sie Open Externally aus, wie im Screenshot gezeigt, um die generierte Berichtslayoutdatei zu öffnen.

Screenshot mit dem Rechtsklick auf die Datei „ExampleEXCELLayout.xlsx“, um die Optionen anzuzeigen, wobei „Extern öffnen“ ausgewählt ist

Sie können jetzt das Layout jetzt in Microsoft Excel bearbeiten.

In Excel wird das Layout in diesem Format angezeigt:

Es ist wichtig, dass Sie den Datensatz in Excel nicht verändern, sondern nur das Layout.

Wechseln Sie in Excel zur Registerkarte Einfügen, wählen Sie PivotTable und dann Aus Tabelle/Bereich mit den Standardoptionen Daten und Neues Arbeitsblatt aus. Wählen Sie die Schaltfläche OK aus.

Screenshot von Excel mit erweiterter PivotTable-Schaltfläche zur Anzeige der Option „Von Tabelle/Bereich“

Screenshot von PivotTable aus dem Tabellen‑ oder Bereichsdialog mit ausgewähltem vorhandenem Arbeitsblatt

Wählen Sie im Bereich PivotTable-Felder rechts eine geeignete Anzahl von Feldern aus, die dem Bericht hinzugefügt werden sollen.

Screenshot des Bereichs PivotTable-Feld mit ausgewählten Feldern CustomerName, City und BalanceLCY

Wenn das Feld Saldo (MW) als Anzahl im Abschnitt Werte des Bereichs PivotTable-Felder hinzugefügt wurde, können Sie es in eine Summe ändern, was in diesem Bericht mehr Sinn macht:

Screenshot der Einstellungen für das Feld Wert von für Anzahl von BalanceLCY, wobei die Option „Wertfeld zusammenfassen nach“ in „Summe“ geändert wurde.

Speichern Sie jetzt die Excel-Datei und schließen Sie sie.

Drücken Sie zurück in Visual Studio Code die Tastenkombination STRG+F5, um Business Central zu kompilieren und zu starten.

Suchen Sie jetzt nach der Seite Auswahl des Berichtslayouts und dann nach dem Bericht, um nun das geänderte Berichtslayout auszuwählen.

Wählen Sie in der Spalte Layouttyp die Option Excel aus, und klicken Sie dann auf der Aktionsleiste auf die Option Bericht ausführen.

Wählen Sie auf der Anforderungsseite die Schaltfläche Herunterladen aus, und öffnen Sie den Bericht, nachdem er heruntergeladen wurde.

Eine andere Möglichkeit, den Datensatz zum Erstellen eines Layouts zu generieren, besteht darin, einen Bericht in Business Central und auf der Anforderungsseite auszuführen und dann die Option Microsoft Excel Dokument (nur Daten) auszuwählen. Sie erhalten dann denselben Ausgangspunkt. Sie können dann das Layout entwerfen, als neues Layout speichern und in Ihr AL-Projekt einfügen.

Excel-Layout-Datenvertrag im 1. Veröffentlichungszyklus 2023 und früheren Versionen

Jede Excel-Layoutdatei muss über ein Arbeitsblatt mit dem Namen Data verfügen Dieses Arbeitsblatt hat einen Zweck: Es definiert, welche Metadatenfelder aus der Datensatzdefinition des Berichtsobjekts das Layout verwendet, was manchmal auch als Datenvertrag zwischen der Layoutdatei und der Definition des Berichtsdatensatzes bezeichnet wird. Der Datenvertrag besteht aus den folgenden Regeln:

  1. Metadatenfelder müssen in die erste Zeile des Data-Arbeitsblatts geschrieben werden, eines in jede Zelle.

  2. Alle Metadatenfelder im Arbeitsblatt Data müssen als Metadatenfelder in der Datensatzdefinition des Berichtsobjekts vorhanden sein.

  3. Sie können Felder im Arbeitsblatt Data nicht umbenennen. Diese müssen mit den Metadatenfeldern in der Datensatzdefinition übereinstimmen.

  4. Sie müssen nicht alle Metadatenfelder in der Datensatzdefinition im Arbeitsblatt Data verwenden.

Beim Entwickeln von Excel-Layouts können Sie dem Arbeitsblatt Data Demodaten hinzufügen, um das Endergebnis einfacher anzuzeigen, wenn der Bericht mit dem Layout gerendert wird. Die Daten werden beim Import in Business Central entfernt. Wenn Sie jedoch Excel-Layouts in eine App/Erweiterung einbinden, möchten Sie die Demodaten möglicherweise dort behalten, um die Fehlerbehebung später zu vereinfachen.

Excel-Layout-Datenvertrag im 2. Veröffentlichungszyklus 2023 und späteren Versionen

Die ExcelLayoutMultipleDataSheets-Eigenschaft ermöglicht Ihnen die Arbeit mit Berichten, die mehrere Arbeitsblätter für die Berichtsdaten rendern, wenn der Datensatz mehrere Datenelemente umfasst. Wenn Sie die Eigenschaft auf „true“ setzen, generiert die AL-Laufzeit für jedes Datenelement ein Excel-Arbeitsblatt und platziert die Daten dort. Wenn die Eigenschaft jedoch „false“ ist (was die Standardeinstellung ist), wird ein einzelnes Blatt für alle Daten verwendet (wie im vorherigen Abschnitt beschrieben).

Jedes der mehreren Blätter hat den Namen #DataItemName, wobei DataItemName der Name ist, der dem Datenelement im Berichtsentwurf gegeben wird. Wenn dem Bericht neue leere Excel-Layouts hinzugefügt werden, wird die Blattstruktur mit der Eigenschaft bestimmt.

Bei Daten in mehreren Arbeitsblättern kann das Berichtslayout jetzt problemlos Datenmodelle umfassen, die mit der PowerPivot-Funktion in Excel festgelegt wurden.

Ein Excel-Layout validieren

Business Central Server führt folgende Vorgänge aus, wenn ein Excel-Layout als Teil einer App importiert wird oder wenn ein Benutzer eine Excel-Layoutdatei hochlädt:

  1. Der Benutzer lädt die Excel-Layoutdatei hoch und überprüft, ob es sich bei der Datei tatsächlich um eine Excel-Datei (.xlsx) handelt und ob sie nicht kennwortgeschützt ist. Business Central Server lehnt das Layout ab, wenn die Datei keine gültige Excel-Datei ist.

  2. Liest die im Daten-Arbeitsblatt vorhandenen Metadatenfelder (den Inhalt des Datenvertrags). Business Central Server lehnt das Layout ab, wenn kein Daten-Arbeitsblatt vorhanden ist.

  3. Entfernt alle anderen Daten, die im Daten-Arbeitsblatt vorhanden sind.

  4. Validiert, ob die Metadatenfelder im Daten-Arbeitsplatt alle als Metadatenfelder in der Datensatzdefinition des Berichtsobjekts vorhanden sind. Anders formuliert: Business Central Server überprüft die Gültigkeit des Datenvertrages. Wenn der Datenvertrag nicht gültig ist, lehnt Business Central Server das Layout ab.

Einen Bericht mit einem Excel-Layout ausführen

Business Central Server führt die folgenden Vorgänge aus, wenn ein Bericht mit einem Excel-Layout ausgeführt wird:

  1. Erstellt den Datensatz wie in der Datensatzdefinition im Berichtsobjekt angegeben und durch die Filter und Optionen auf der Anforderungsseite angepasst.

  2. Lädt die Excel-Layoutdatei.

  3. Fügt die Daten in die Datentabelle im Datenarbeitsblatt in der Excel-Layoutdatei ein.

  4. Stellt dem Benutzer die zusammengeführte Excel-Arbeitsmappe zum Herunterladen oder Anzeigen in Excel online bereit, sofern dies vom Mandantenadministrator aktiviert wurde. Weitere Informationen zum Anzeigen von Excel-Ausgaben in Excel online finden Sie unter „Excel-Arbeitsmappen und Berichtsdateien in OneDrive speichern“.

Den Datenvertrag nach dem Hinzufügen neuer Spalten zum Berichts-Dataset ändern

Wenn Sie dem Berichts-Dataset neue Spalten hinzufügen, nachdem Sie Excel-Layouts erstellt haben, werden die Datenverträge in den Layouts nicht automatisch aktualisiert. Sie müssen die Layouts jedoch nicht von Grund auf neu erstellen, sondern Sie können die neuen Spalten manuell der Kopfzeile im Datenvertragsarbeitsblatt hinzufügen.

Für einen Berichtsentwickler, der mit AL-Code arbeitet, besteht die vielleicht einfachste Möglichkeit, die neuen Spaltennamen abzurufen, darin, den AL-Code für das Berichtsobjekt zu nutzen. Für einen Berichtsentwickler, der nur in Excel arbeitet, ist die einfachste Möglichkeit, die neuen Spaltennamen zu erhalten, den Bericht in Business Central und auf der Anforderungsseite auszuführen und dann die Option Microsoft Excel-Dokument (nur Daten) auszuwählen. So erhalten Sie eine Excel-Arbeitsmappe mit allen Spalten im Datenvertrag.

Berichtsbeschriftungen in Excel-Layouts

Berichtsbeschriftungen werden von Berichtslayouts zum Beispiel als Kopfzeile für ein Feld in einer Tabelle als Titel für ein Diagramm oder als Titel für den Bericht selbst verwendet.

Berichtsbeschriftungen, die im Abschnitt „Beschriftungen“ des Berichtsobjekts festgelegt sind, und Beschriftungen, die mithilfe der IncludeCaption-Eigenschaft in Datenelementspalten eingefügt wurden, im Arbeitsblatt „CaptionData“ in Excel verfügbar.

Daten in Excel-Layouts formatieren

Oftmals ist es erstrebenswert, Daten in einem Bericht anders zu formatieren, als dieselben Daten in Tabellen, Abfragen oder Seiten angezeigt werden. Wenn beispielsweise ein Dezimalfeld in einer Tabelle eine Genauigkeit von fünf Ziffern aufweist, wird im Bericht möglicherweise nicht dieselbe Genauigkeitsstufe benötigt.

Speziell für Excel-Layouts gibt es viele Möglichkeiten, die Formatierung von Datenelementen direkt in Excel zu kontrollieren. Im Folgenden finden Sie weitere Beispiele zum Formatieren von Daten in Excel:

Drillthrough zu Business Central aus einem Excel-Layout ausführen

Sie können mit Drillthrough in einem Excel-Layout Hyperlinks aus Excel-Zellen zurück zu Business Central erstellen. Wenn der Berichtsbenutzer die Zelle auswählt, führt er einen Drillthrough zur Zielseite aus, um Details zu erhalten, die nach diesem Kontext gefiltert werden. Sie müssen wissen, welche Seite geöffnet werden soll, und außerdem erstellen, welche Filter auf diese Seite angewendet werden sollen, um einen Drillthrough-Link zu implementieren. Sie filtern die auf der Seite angezeigten Daten mit dem Filter-URL-Parameter. Sie können mit dem Filterparameter bestimmte Datensätze aus der zugrunde liegenden Tabelle der Seite anzeigen.

Schriftarten in Excel-Layouts verwenden

Die Online-Version von Business Central umfasst vorinstallierte Schriftarten auf den Servern, die beim Generieren von Berichten verwendet werden können. In ihrem Layout können Sie jede dieser Schriftarten in Ihrem Layout verwenden.

Weitere Informationen finden Sie unter Verfügbare Schriftarten in Business Central Online.

Office-Dokumentdesigns in Excel-Layouts verwenden

Mit Office-Dokumentdesigns können Sie Farben, Schriftarten und grafische Formatierungseffekte sehr einfach in Ihren Word‑ und Excel-Layouts koordinieren und schnell aktualisieren.

Unter Ein Design ändern und es zum Standard in Word oder Excel machen finden Sie dazu weitere Informationen.

In Excel-Layouts integrierte benannte Formeln verwenden

Es sind benannte Formeln in Excel-Layout-Arbeitsmappen integriert, um die Verwendung von Daten aus Metadatenblättern zu vereinfachen. Anstatt sich die Zeit zu nehmen, komplizierte SVERWEIS‑ oder XVERWEIS-Formeln zu entwickeln, können Berichtsautoren benannte Formeln verwenden, wie beispielsweise ReportRequest.Date oder ReportMetaData.ReportHelpLink.