Paginated Reports
in a Day
Übung 04A
In dieser Übung werden Sie den Bericht Verkäuferverzeichnis, der in Übung 03A erstellt wurde, um
Parameter erweitern.
Wichtig: Bei der Entwicklung von Berichten gibt es viele sich wiederholende Aufgaben. In den Übungen
dieses Kurses werden die detaillierten Schritt-für-Schritt-Anweisungen stufenweise verkürzt, wenn
bereits detaillierte Schritte bereitgestellt wurden.
Wenn Sie die Übung 03A zum Erstellen der Berichtsvorlage nicht erfolgreich abgeschlossen haben,
können Sie den Lösungsbericht öffnen, der sich im Verzeichnis
<Kursordner>\PowerBIPRIAD\Übung03A\Lösung befindet.
1. Überprüfen Sie in Report Builder, ob der Bericht Verkäuferverzeichnis aus der vorherigen
Übung geöffnet ist.
2. Im Bereich Berichtsdaten klicken Sie mit der rechten Maustaste auf das DataSet dsMain, und
wählen Sie dann DataSet-Eigenschaften aus.
4. Im Fenster Abfrage-Designer im Bereich Angewandte Filter fügen Sie einen neuen Filter für
die Spalte EmployeeKey hinzu.
Bei SQL Server-Datenbankprodukten wird den Abfrageparametern das Symbol „at“ (@) vorangestellt.
Zur Ausführungszeit der Abfrage wird ein Parameterwert in den Abfrageparameter eingesetzt.
11. Im Bereich Parameter (über dem Berichts-Designer) sehen Sie den Berichtsparameter für
Mitarbeiterschlüssel.
12. Im Bereich Berichtsdaten klicken Sie mit der rechten Maustaste auf den Berichtsparameter für
EmployeeKey, und wählen Sie dann Parametereigenschaften aus.
16. Öffnen Sie die DataSet-Eigenschaften für dsMain, und wählen Sie dann die Seite Parameter aus.
Das im Kurzformausdruck verwendete „at“-Symbol (@) gibt an, dass das Element ein
Berichtsparameter ist.
18. Öffnen Sie das Fenster Ausdruck für den Parameterwert, und überprüfen Sie dann den Ausdruck.
Der Ausdruck gibt den Wert des Berichtsparameters für EmployeeKey zurück. Der DataSet-
Abfrageparameter empfängt also tatsächlich den vom Berichtsbenutzer eingegebenen
Berichtsparameterwert.
19. Schließen Sie das Fenster Ausdruck und das Fenster DataSet-Eigenschaften.
20. Klicken Sie im Seitenkopf mit der rechten Maustaste auf das Textfeld Untertitel, und wählen Sie
dann Ausdruck aus.
21. Im Fenster Ausdruck in der Liste Kategorie wählen Sie Parameter aus.
22. In der Liste Werte doppelklicken Sie auf den Berichtsparameter für EmployeeKey.
24. Zeigen Sie den Bericht in der Vorschau an (klicken Sie auf Ausführen auf der Registerkarte
Stamm des Menübands).
25. Geben Sie in das Parameterfeld Verkäufer den Wert 272 ein.
27. Überprüfen Sie den ausgegebenen Bericht für den einzelnen Verkäufer namens Stephen Jiang.
Es ist eher unwahrscheinlich, dass ein Berichtsbenutzer die zum Filtern des Berichts erforderlichen
Mitarbeiterschlüsselwerte kennt. In der nächsten Aufgabe konfigurieren Sie den Berichtsparameter
so, dass eine Dropdownliste der Verkäufer angezeigt wird, und Sie konfigurieren den
Berichtsuntertitel so, dass der ausgewählte Wert angezeigt wird.
2. Klicken Sie im Bereich Berichtsdaten mit der rechten Maustaste auf die Datenquelle
AdventureWorksDW2020. Wählen Sie dann Datensatz hinzufügen aus.
3. Im Fenster DataSet-Eigenschaften im Feld Name ersetzen Sie den Text durch dsSalesperson.
6. Wählen Sie die Datei dsSalesperson_1.sql aus, und klicken Sie dann auf Öffnen.
Die Abfrage ruft alle Verkäufer ab und gibt zwei Spalten zurück: die Spalte EmployeeKey und den
vollständigen Namen des Verkäufers. Das Abfrageergebnis wird in aufsteigender Reihenfolge des
Verkäufernamens sortiert.
9. Öffnen Sie die Berichtsparametereigenschaften für EmployeeKey, und wählen Sie dann die
Seite Verfügbare Werte aus.
• DataSet: dsSalesperson
• Wertfeld: EmployeeKey
• Beschriftungsfeld: SalespersonName
Dem Feld Wert wird normalerweise ein Datenbankschlüsselwert zugewiesen, während dem Feld
Beschriftung ein benutzerfreundlicher Textwert zugewiesen wird. Es ist möglich, dasselbe Feld für
die Felder Wert und Beschriftung zu verwenden.
12. Ändern Sie den Ausdruck für das Textfeld Untertitel mit folgendem Ausdruck:
VB.NET
=Parameters!EmployeeKey.Label
14. Wählen Sie in der Dropdownliste des Parameters Verkäufer die Option ABBAS, Syed aus, und
klicken Sie dann auf Bericht anzeigen.
15. Überprüfen Sie den ausgegebenen Bericht, und beachten Sie den verbesserten Untertiteltext für
den Seitenkopf.
Wenn ein Bericht Berichtsparameter definiert, kann er erst ausgeführt werden, wenn alle
Werte eingegeben wurden. Um die Interaktion mit dem Bericht zu vereinfachen – oder
um sicherzustellen, dass der Bericht auf Anforderung sofort ausgeführt wird – können
Berichtsparametern Standardwerte zugewiesen werden.
2. Öffnen Sie die Berichtsparametereigenschaften für EmployeeKey, und wählen Sie dann die
Seite Standardwerte aus.
• DataSet: dsSalesperson
• Wertfeld: EmployeeKey
Standardwerte können auf angegebenen Werten – entweder Konstanten oder Ausdrücken – oder
auf Ergebnissen von DataSet-Abfragen basieren. Wenn mehrere Zeilen von einem DataSet
zurückgegeben werden und der Berichtsparameter nicht dazu konfiguriert ist, mehrere Werte
zuzulassen, wird die erste Zeile des Abfrageergebnisses als Standardwert verwendet.
6. Beachten Sie, dass der Parameter für Verkäufer festgelegt wurde und dass der Bericht
automatisch ausgeführt wurde.
Der Bericht zeigt jetzt nur einen einzelnen Verkäufer an. Mit den Verbesserungen, die Sie in der
nächsten Aufgabe vornehmen, können Berichtsbenutzer alle Verkäufer oder nur einen einzelnen
Verkäufer auswählen.
2. Öffnen Sie die DataSet-Eigenschaften dsSalesperson, und klicken Sie dann auf Importieren.
3. Im Fenster Abfrage importieren wählen Sie die Datei dsSalesperson_2.sql aus, und klicken Sie
dann auf Öffnen.
4. Im Feld Abfrage überprüfen Sie die Abfrageanweisung, die zu einer Union-Abfrage geändert
wurde.
Die erste SELECT-Anweisung ruft eine „künstliche“ Zeile mit einem Wert EmployeeKey von -1
sowie einen in Klammern gesetzten Untertitel ab. Es wird ein Schlüsselwert zurückgegeben, der in
der Datenbank nicht vorhanden ist. Außerdem wird eine Beschriftung definiert, die zuerst
angezeigt wird, wenn die Zeilen nach den Beschriftungswerten sortiert werden. Die erste SELECT-
Anweisung wird mit der zweiten zusammengeführt, bei der es sich um die ursprüngliche
Anweisung handelt.
6. Öffnen Sie das DataSet dsMain, und importieren Sie die Datei dsMain_1.sql.
7. Im Feld Abfrage überprüfen Sie die Abfrageanweisung, die eine geänderte WHERE-Klausel
aufweist.
Die WHERE-Klausel gibt einen einzelnen Mitarbeiter oder alle Mitarbeiter zurück, wenn der
Parameterwert @EmployeeKey die Zahl -1 ist.
Diese Abfrage ist möglicherweise nicht sehr effizient, da sie wahrscheinlich einen Tabellenscan
erzwingt. Bei großen Tabellen sollten Sie diesen Prädikattyp vermeiden, indem Sie die
Abfrageanweisung in einer gespeicherten Prozedur definieren. Die Logik der gespeicherten
Prozedur kann zu verschiedenen Abfrageanweisungen verzweigen, basierend auf dem
Parameterwert @EmployeeKey.
10. Beachten Sie, dass der Parameter Verkäufer jetzt standardmäßig (Alle Verkäufer) verwendet,
und dass alle Verkäufer abgerufen werden.
Der Berichtsparameter verwendet weiterhin standardmäßig die erste Zeile der Abfrage
dsSalesperson, die jetzt die Zeile (Alle Verkäufer) ist.
11. Ändern Sie den Berichtsparameter für Verkäufer zu ABBAS, Syed, und klicken Sie dann auf
Bericht anzeigen.
Wenn verfügbare Wertelisten groß werden, werden sie unpraktisch und ineffizient, um als einzelne
Liste dargestellt zu werden. Um die Listengröße zu verringern, können Sie zusätzliche Parameter
einführen, die ein Kaskadenverhalten verwenden, um andere Parameterwerte zu filtern.
2. Öffnen Sie die DataSet-Eigenschaften dsSalesperson, und klicken Sie dann auf Importieren.
3. Im Fenster Abfrage importieren wählen Sie die Datei dsSalesperson_3.sql aus, und klicken Sie
dann auf Öffnen.
4. Im Feld Abfrage überprüfen Sie die Abfrageanweisung, und beachten Sie den
Abfrageparameter @SalesTerritoryGroup, der der drittletzten Zeile hinzugefügt wurde.
Für das Hinzufügen des Abfrageparameters muss der Wert der Vertriebsgebietsgruppe an die
Abfrage übergeben werden.
7. Um ein neues DataSet zu erstellen, klicken Sie mit der rechten Maustaste auf die Datenquelle
AdventureWorksDW2020, und wählen Sie dann DataSet hinzufügen aus.
10. Im Fenster Abfrage importieren wählen Sie die Datei dsSalesTerritoryGroup.sql aus, und
klicken Sie dann auf Öffnen.
16. Ändern Sie die DataSet-Abfrage dsMain, indem Sie die Datei dsMain_2.sql importieren.
17. Ändern Sie das Textfeld für den Untertitel des Berichts, um den folgenden Ausdruck zu verwenden:
VB.NET
=Parameters!SalesTerritoryGroup.Value & Iif(Parameters!EmployeeKey.Value = -1, "",
" - " & Parameters!EmployeeKey.Label)
Der Ausdruck gibt die Vertriebsgebietsgruppe zurück und fügt dann den ausgewählten Verkäufer
an, wenn das Element „Alle Verkäufer“ nicht ausgewählt ist.
19. Beachten Sie, dass der Berichtsparameter für Verkäufer deaktiviert ist.
Die verfügbaren Werte des Berichtsparameters für Verkäufer können erst abgerufen werden,
wenn ein Berichtsparameterwert Gruppe ausgewählt ist.
20. In der Dropdownliste des Parameters Gruppe wählen Sie Nordamerika aus.
21. In der Dropdownliste des Parameters Verkäufer beachten Sie, dass 10 Verkäufer aufgelistet sind.
22. In der Dropdownliste des Parameters Gruppe wählen Sie Europa aus.
23. In der Dropdownliste des Parameters Verkäufer beachten Sie, dass drei Verkäufer aufgelistet sind.
2. Öffnen Sie die Eigenschaften des Berichtsparameters für EmployeeKey, und aktivieren Sie dann
Mehrere Werte zulassen.
Alle Parameterwerte werden ausgewählt, da die Standardwerte auf allen Zeilen des DataSets
dsSalesperson basieren.
Zeigen Sie den Bericht nicht an, da er einen Fehler generiert. Sie kehren zum Berichts-Designer
zurück, um mit der Konfiguration der Parameter fortzufahren.
8. Ändern Sie die DataSet-Eigenschaften dsSalesperson, indem Sie die Datei dsSalesperson_4.sql
importieren.
Die Abfrageanweisung enthält nicht mehr die Zeile „künstlich“ (Alle Verkäufer).
Die WHERE-Klausel filtert jetzt anhand der Spalte EmployeeKey mithilfe des IN-Operators. Der
IN-Operator ermöglicht das Übergeben einer durch Kommas getrennten Liste von Werten, und
Power BI übergibt mehrere Mitarbeiterschlüsselwerte als Zeichenfolge von durch Kommas
getrennten Werten.
10. Ändern Sie das Textfeld für den Untertitel des Berichts, um den folgenden Ausdruck zu
verwenden:
VB.NET
=Parameters!SalesTerritoryGroup.Value & Iif(Parameters!EmployeeKey.Count =
CountRows("dsSalesperson"), "", " - " & Join(Parameters!EmployeeKey.Label, ", "))
Der Ausdruck verwendet auch die Funktion Beitreten zum Erzeugen einer einzelnen Zeichenfolge
ausgewählter Werte, diesmal mithilfe der Eigenschaft Beschriftung des Berichtsparameters und
einem Trennzeichenwert, der ein Leerzeichen enthält. Die bedingte Logik testet die Anzahl
ausgewählter Werte, und wenn sie mit der Anzahl der Zeilen im DataSet dsSalesperson
übereinstimmt, gibt sie nicht die Liste mit Trennzeichen aus.
12. In der Dropdownliste des Parameters Gruppe wählen Sie Europa aus.
13. Im Parameter Verkäufer beachten Sie, dass alle Elemente ausgewählt sind – wählen Sie kein
Element aus.
15. Beachten Sie, dass im Untertitel des Seitenkopfs lediglich der Name der Vertriebsgebietsgruppe
angezeigt wird.
16. In der Dropdownliste des Parameters Verkäufer heben Sie die Auswahl eines Verkäufers auf.
Beachten Sie, dass im Untertitel des Seitenkopfs der Name der Vertriebsgebietsgruppe und eine
durch Kommas getrennte Liste aller ausgewählten Verkäufer angezeigt werden.
Wichtig: Sie sollten diese Aufgabe nur durchführen, wenn Sie Zugriff auf einen Power BI Arbeitsbereich
mit dedizierten Kapazität haben, in dem die Workloads für die paginierten Berichte aktiviert sind.
2. Veröffentlichen Sie den Bericht in Ihrem Arbeitsbereich, und überschreiben Sie dabei den zuvor
veröffentlichten Bericht.
In dieser Übung haben Sie den Bericht Verkäuferverzeichnis mithilfe der Listendatenregion
entwickelt. Der Bericht basierte auf der Azure SQL-Datenbank AdventureWorksDW2020-PRIAD.
Sie haben den Bericht dann in Power BI veröffentlicht.