Die Paginated Reports ergänzen das Power BI Universum um einen Berichtstyp, der für den Druck bzw. die Ausgabe nach PDF optimiert ist und typischerweise mehrere (A4) Seiten umfasst. Die Paginated Reports sind aus den früheren SQL Server Reporting Services (SSRS) gewachsen und haben in Power BI ein großes, neues Anwendungsfeld erhalten. Funktion und Terminologie der Paginated Reports wurden stark an Power BI herangeführt, im Kern ist die SQL Herkunft aber nach wie vor leicht zu erkennen und erfordert daher stellenweise auch etwas Technikverständnis.
Der Power BI Editor – diesen haben wir im Teil 1 dieser Serie kennen gelernt – ist sehr anwenderfreundlich gestaltet, befindet sich derzeit aber noch in Preview und hat einen noch recht begrenzten Leistungsumfang. Der Power BI Report Builder – diesen verwenden in diesem Teil 2 der Serie – ist wesentlich leistungsfähiger, hat aber das techniklastigere User Interface (das an die SQL Herkunft erinnert) und hat wohl leider auch noch ein paar Bugs. Im abschließenden Teil 3 der Serie zeigen wir, wie Paginated Reports mit sog. Parameter dynamisch gefiltert werden können.
1. Datenmodell
Ausgangsbasis ist das bereits aus Teil 1 bekannte Power BI Datenmodell zur Auswertung der Smartmeter Daten einer Photovoltaik (PV) Anlage. Relevant auch für diesen Beitrag sind wiederum die Faktentabelle für die Smartmeter Daten, die Datumsdimension sowie die auf die Faktentabelle erstellten Measures Einspeisung und Netzbezug:

In Power BI wurde mit dem Tabellen Visual ein Report auf Tagesebene für den Monat August 2025 erstellt. Diese Auswertung soll als Paginated Report umgesetzt werden, um die Daten in ein PDF drucken, verteilen und auch archivieren zu können.

2. Aufbau eines einfachen Paginated Reports mit dem Report Builder
Natürlich könnten wir auch die am Ende von Teil 1 heruntergeladene RDL-Datei als Ausgangsbasis für den Power BI Report Builder verwenden. Zum besseren Verständnis bauen wir den Paginated Report aber lieber „from scratch“ auf.
2.1 Installation und User Interface des Report Builder
Der Report Builder kann bspw. über den Download Bereich im Power BI Cloud Service heruntergeladen werden. Derzeit ist die Terminologie übrigens noch etwas unschlüssig, hier heißt das Tool „Paginated Report Builder„, das installierte Programm läuft dann derzeit aber (noch?) als „Power BI Report Builder„:

Nach der Installation wird der Report Builder gestartet und es erfolgt die Anmeldung mit dem persönlichen Power BI Account.
Das – recht einfache – User Interface ist aus folgenden Elementen aufgebaut und erinnert an den Berichtseditor von MS Access, an SQL Server Management Studio und viele mehr:
- Menüleiste = Datei, Stamm, Daten, Einfügen und Ansicht
- Pane „Berichtsdaten“ (links) = Sammlung der Berichtsbausteine
- Pane „Eigenschaften“ (rechts) = Settings für selektiertes Objekt bzw. für den ganzen Bericht
- Bereich „Parameter„(oben) = Platzierung der Berichtsfilter („Parameter“)
- Canvas Bereich (mittig) = Platzierung der Berichtsobjekte wie Tabellen, Charts, Header/Footer, usw.
- Bereich „Zeilengruppen“ (unten links) = Steuerung der Zeilengruppierung von bspw. Tablix Visualisierungsobjekten
- Bereich „Spaltengruppen“ (unten rechts) = Steuerung der Spaltengruppierung von bspw. Tablix Visualisierungsobjekten

Im Menü Daten sind die „Power Query“ Konnektoren und – am wichtigsten – die OneLake Datenquellen zu finden:

Im Menü Einfügen sind die verfügbaren Visualisierungsobjekte zu finden:

Und im Menü Ansicht kann die Bestandteile des User Interface aus- oder wieder eingeblendet werden:

2.2 Power BI Datenmodell verbinden
Paginated Reports können – wie im Menü Daten oben zu sehen ist – auch direkt auf andere Datenquellen wie relationale Datenbanken oder Files erstellt werden. Wir verwenden im Sinne einer sauberen Datenarchitektur jedoch ausschließlich fertige Power BI Datenmodelle („Semantische Modelle“) als Datenquelle für Paginated Reports:

Im Auswahldialog wird der Power BI Workspace sowie das konkrete Semantische Modell ausgewählt:

2.3 (Erstes) Dataset erstellen („DAX Query“)
Im nächsten Schritt benötigen wir ein sogenanntes Dataset – das ist eine Abfrage – als Datenquelle für die gewünschte Berichtsvisualisierung. Da unser Paginated Report mit einem semantischen Modell („Power BI“) verbunden ist, benötigen wir eine DAX Query.
Es gibt zumindest die folgenden 4 Möglichkeiten, zur passenden DAX Query zu kommen:
- Verwendung des Abfrage Designers direkt im Report Builder
- Vergleichbares Visual in Power BI (Desktop) erstellen und DAX Query mit dem Performance Analyzer abgreifen
- DAX Query in der DAX Query View in Power BI Desktop oder in DAX Studio entwicklen und einkopieren
- DAX Query frei eintippen
Wir nutzen hier aus Einfachheitsgründen den Abfrage Designer:

Wer jemals mit MDX Statements in den SQL Server Analysis Services („OLAP Cubes“) zu tun hatte, fühlt sich mit dem Abfrage Designer sicherlich gleich sehr wohl. Alle anderen dürfen sich nicht von dem schwerfälligen Aufbau des Tools abschrecken lassen, das tatsächlich ganz einfach zu verwenden ist. Einfach die gewünschten Felder für den späteren Bericht in einer möglichst logischen Reihenfolge in den Abfragebereich ziehen (Drag & Drop) und – falls gewünscht – die Filter im Kopfbereich des Abfrage Designers definieren:

Die DAX Query sollte jetzt mit dem roten Rufzeichen zum Test ausgeführt werden und die Ergebnistabelle plausibilisiert werden:

Mit dem Button OK wird das DAX Statement für die Query – leicht zu erkennen am EVALUATE am Beginn der Query – in den Dataset Editor eingefügt:

Zur besseren Lesbarkeit kann das DAX Statement formatiert werden – dazu empfehle ich den DAX Query View in Power BI Desktop und bei Bedarf kann das Statement natürlich auch hier weiter bearbeitet werden und bspw. die Spalte „Monat ID“ noch der Query hinzugefügt werden. Auch sollte das Dataset mit einem sprechenden Namen benannt werden:

Zum Abschluß sollten die einzelnen Felder („Spalten“) der Ergebnistabelle gleich jetzt sauber benannt werden, da ein späteres Umbenennen leider nicht automatisch durch den Report durchaktualisiert wird:

In der Pane „Berichtsdaten“ werden jetzt sowohl die Verbindung zum Power BI Datenmodell sowie das Dataset mit den enthaltenen Spaltennamen übersichtlich aufgelistet:

2.4 Tablix Visualisierung einfügen
Eine Tablix Visualisierung ist eine Tabelle oder eine Matrix, wobei die Grenzen zwischen diesen beiden Instrumenten in den Paginated Reports verschwimmen und daher über den gleichen Wizard erzeugt werden. Einfach den Wizard im Dropdown der Tabelle oder der Matrix starten und Datenquelle auswählen:

Die Anordnung der Felder im Wertebereich bzw. im Zeilen- und/oder Spaltenbereich hat die allergrößte Auswirkung auf die Struktur der Tabellenvisualisierung. Wir nutzen die Gelegenheit, anstelle einer flachen Tabelle den Report nach Jahr und Monat zu gruppieren:

Im nächsten Screen Layout wird entschieden, wo sich die Teilergebnisse für die beiden Gruppierungsebenen befinden sollen (oben) und ob die Gruppierung interaktiv erweitert und reduziert werden kann (nein):

Das fertige Tablix Visualisierungsobjekt wird auf den Canvas eingefügt und die Gruppierungsebenen werden im Bereich Zeilengruppierung angezeigt. Sehr wichtig ist das dritte Gruppierungsobjekt „(Details)“, das gar keine Gruppierung darstellt sondern die Einzeldatensatzebene des Datasets repräsentiert (diese Ebene spielt eine besondere Rolle im Tablix Objekt):

Jetzt sollte der Paginated Report mit File -> Speichern als RDL gespeichert und damit gesichert werden:

Jetzt kann der Paginated Report mit dem Button „Ausführen“ gerendert werden …

… damit der vorläufige Bericht betrachtet werden kann. Dieser hat noch einige gravierende Schwächen:
- Fehlende Überschrift
- Sortierung der Monate alphabetisch (fällt aufgrund der Filterung auf ein Monat noch nicht auf)
- Datumsformat mit Uhrzeit 00:00:00
- Zahlenformat mit variablen Kommastellen

3. Layout des Reports verbessern
3.1 Kopf- und Fußzeile formatieren
Im Default Report gibt es zwar eine Fußzeile aber noch keine Kopfzeile. Diese kann sehr einfach über das Menü Einfügen -> Kopfzeile -> Kopfzeile einfügen hinzugefügt werden:

Sowohl der Kopf- als auch der Fußzeilenbereich werden durch jeweils einen horizontalen, weißen Trennstrich im vertikalen Lineal markiert und können u.a. dort auch verschoben werden:

Jetzt wird die Textbox im Datenbereich gelöscht und im Kopfbereich eine neue eingefügt und die Überschrift dort eingesetzt. Weiters werden Kopf- und Fußzeilenbereich eingefärbt und in der Größe angepaßt. Das Tablix Objekt wird an den oberen Rand des Datenbereichs verschoben, um unnötige Leerräume im Report zu vermeiden:

3.2 Sortierung für die Monate anpassen
Dazu das Monatsfeld im Tablix markieren und unten in der Zeilengruppierung die Gruppierungseigenschaften für das Monat öffnen …

Dort kann in den Gruppeneigenschaften die Sortierung nach dem alternativen Feld „Monat_ID“ eingestellt werden (das ist auch der Grund, warum wir das Feld noch in die DAX Query aufgenommen haben):

3.3 Datumsformat anpassen
Das Datum wird mit Uhrzeit angezeigt, das kann über die Textfeldeigenschaften geändert werden:

Dabei im Reiter Zahl das passende Datumsformat festlegen:

WICHTIG: diese Änderung führt in der aktuellen Version des Report Builder dazu, daß die Daten im Detailbereich nicht mehr angezeigt werden. Siehe mehr dazu im Kapitel „Bugs„.
3.4 Zahlenformat anpassen
Alternativ zu den Textfeldeigenschaften können auch die Platzhaltereigenschaften geändert werden (-> Doppelklick auf die Zelle im Tablix Objekt -> rechte Maustaste):

Dazu im Reiter „Zahl“ die gewünschte Zahlenformatierung vornehmen:

4. Layout des Reports weiter ausbauen
4.1 Leerzeilen zur Strukturierung einsetzen
Zur optisch besseren Strukturierung der gruppierten Tabelle können nach jeder Gruppe Leerzeilen eingefügt werden:

4.2 Gruppensummen einsetzen
Eigentlich interessant, daß die Gruppensummen nicht automatisch vom Tabellen Wizard erzeugt wurden.
Im ersten Schritt können die Zeilentitel für die Gruppensummen eingesetzt werden:

Die Gruppensummen werden mit dem Expression Editor an den gewünschten Stellen eingsetzt …

… und die Aggregationsfunktion SUM() mit Referenz auf das in dieser Spalte verwendete Measure eingesetzt werden (nach dem Doppelklicken auf „Einspeisung_KWh“ wird das Feld mit dem Syntax „Fields!Einspeisung_KWh.Value“ in den Ausdruck übernommen):

Dies wird an allen gewünschten Aggregationszellen wiederholt und entsprechend formatiert:

4.3 Weitere Formatierungen
Jetzt können noch weitere Zellformatierungen definiert werden, um dem Report mehr Struktur zu geben:

5. Veröffentlichen des Paginated Reports
Der Report Builder ist – ebenso wie Power BI Desktop – lediglich ein Design Tool zum Aufbau neuer Reports. Der Betrieb – also die Verteilung und Konsumation – des Paginated Reports findet im Power BI Cloud Service statt. Dazu wird der Upload der RDL-Datei mit dem Button Veröffentlichen (im Menü Stamm) gestartet:

Danach wird der Ziel-Workspace im Power BI Cloud Service ausgewählt und ein Objektname festgelegt:

Nach dem erfolgreichen Upload steht der Paginated Report im Power BI Cloud Service zur Verteilung – am besten über Apps oder ggfs. über die Share Funktion – und zur Konsumation durch die Berichtsempfänger bereit:

Jetzt sehen wir den fertigen Report im Produktivbetrieb:

Hinweis: da dieser Benutzer als Anwendungssprache Englisch ausgewählt hat, werden die Berichtsinhalte für diesen Anwender in den englischsprachigen Formaten dargestellt.
6. Bugs im Report Builder
Leider hat sich der Report Builder bei dieser – eigentlich sehr einfachen – Aufgabe ziemlich buggy gezeigt.
Nach der Umstellung des Datumformats (siehe Kapitel 3.3 oben) zeigt der Report Builder nämlich in der Berichtsvorschau die Detaildatensätze nicht mehr an. An der Position der Summenzeilen ist aber zu sehen, daß die Datensätze offenbar generiert werden, aber diese Inhalte nicht zu sehen sind. Das gleiche ist passiert, wenn die Spalte mit Datum/Uhrzeit breiter gezogen wurde oder die „Can grow“ Eigenschaft deaktiviert wurde. Der Bug dürfte etwas damit zu tun haben, welches Feld als erstes im Detailbereich platziert wird. Wurde das Textfeld „Source File“ an die erste Stelle im Detailbereich gestellt (also zwischen Monat und Datum), dann wurde auch das kurz formatierte Datum und die Inhalte der Detaildatensätze wieder angezeigt. Mit einem Dummy Textfeld („abc“) hat das aber wiederum nicht funktioniert. Auch der Versuch, das Datum bereits als Text aus dem semantischen Modell abzufragen, hatte nichts gebracht.

Es ist aber nicht nur das Datumsformat. Wird das Datumsfeld „unangetastet“ belassen, werden zwar die Detaildatensätze angezeigt, nicht aber die Jahres- und die Gesamtsummen.

Möglicherweise gibt es eine Erklärung bzw. eine Lösung dafür – ich bin aber nicht dahinter gekommen. Daher gehe ich davon aus, daß es sich um um Bugs in der aktuellen Version v15.7.1814.616 handelt.
Fazit
Zuerst die Kritik:
Die Bugs im Report Builder kosten fallweise ordentlich Zeit und Nerven, daher am besten bei Auftreten von Anomalien den Report gleich in den Power BI Cloud Service hochladen und das Verhalten abgleichen. Die Investitionen seitens Microsoft in das Tool sind mit aktuell nur 2 Releases pro Jahr und recht wenigen Neuerungen (siehe Changelog) recht überschaubar und zeigen, daß hier nicht der strategische Fokus von Microsoft liegt.
Jetzt das Positive:
Die Paginated Reports sind aber dennoch ein solides und nützliches ergänzendes Berichtsinstrument in Power BI. Mit dem Power BI Report Builder können die Paginated Reports sehr viel weiter ausgebaut werden, als dies heute im Power BI Cloud Editor möglich ist.
Quellen
https://learn.microsoft.com/de-de/power-bi/paginated-reports/report-builder-power-bi



