Reporting Services Datasets

Wenn Sie ein Reporting Services Projekt erstellt haben, benötigen Sie vor dem Anlegen von Berichten zwei Dinge: eine Datenquelle, auch Datasource genannt, und eine Art Abfrage, wie bei den Reporting Services Datasets genannt werden. Wie Sie Datenquellen auf verschiedene Arten erstellen, haben wir im Artikel “Reporting Services Datenquellen” erläutert. Im vorliegenden Artikel beschreiben wir, wie Sie mithilfe von Datasets die Daten für Ihren Bericht zusammenstellen und welche unterschiedlichen Möglichkeiten es dafür gibt. Dabei schauen wir uns wieder Visual Studio, den SQL Server Report Builder und das Web-Portal der Reporting Services an.

Freigegebene Datasets oder eingebettete Datasets

Genau wie bei den Datenquellen beziehungsweise Datasources gibt es auch bei den Datasets zwei Varianten – nämlich freigegebene Datasets und eingebettete Datasets. Die freigegebenen Datasets können Sie in einem Projekt oder im Web-Portal erstellen. Eine wichtige Voraussetzung für ein freigegebenes Dataset ist das Vorhandensein einer freigegebenen Datenquelle. Für ein eingebettetes Dataset können Sie eine freigegebene Datenquelle verwenden, aber auch eine eingebettete Datenquelle.

Welchen Typ von Dataset sollten Sie nun verwenden Es verhält sich in einem Aspekt ähnlich wie bei Microsoft Access: Dort konnten Sie Abfragen als eigene Objekte speichern und diese dann Formularen über die Eigenschaft Datensatzquelle oder Listensteuerelementen über die Eigenschaft Datensatzherkunft zuweisen. Oder Sie haben die als Datenquelle zu verwendende Abfrage als SQL-Abfrage direkt für die jeweilige Eigenschaft hinterlegt. Beides hat Vor- und Nachteile: Wenn Sie die Abfrage als eigenes Objekt speichern, können Sie diese als Datenquelle für mehr als ein Formular oder einen Bericht und gleichzeitig noch als Datenquelle für Listensteuerelemente nutzen.

Der Vorteil und der Nachteil ist gleichzeitig, dass sich Änderungen an der Abfrage auf alle referenzierenden Elemente auswirkt. Andersherum sammeln Sie eine Menge Datenquellen in Formularen, Berichten und Steuerelementen an, die nur schwer zu warten sind.

Eine Alternative ist es, alle Abfragen als eigene Objekte zu speichern und diese den Objekten beziehungsweise Steuerelementen zuzuweisen. Freigegebene Datasets haben den Vorteil, dass diese gecached werden können.

Und es gibt noch einen gravierenden Unterschied von freigegebenen Dataset gegenüber den erwähnten Abfragen von Access: Sie können diese nämlich auch von anderen Projekten aus verwenden!

Freigegebenes Reporting Services Dataset mit Visual Studio

Wenn Sie in Visual Studio ein neues Projekt des Typs Berichtsserverprojekt-Assistent oder Berichtsserverprojekt erstellt haben, finden Sie im Projektmappen-Explorer neben Freigegebene Datenquellen einen weiteren Ordner namens Freigegebene Datasets vor. Wollen Sie für diesen ein neues freigegebenes Dataset hinzufügen, betätigen Sie den Kontextmenü-Befehl Neues Dataset hinzufügen dieses Eintrags (siehe Bild 1). Hierbei ist es wichtig zu wissen, dass Sie auf jeden Fall zuvor mindestens eine freigegebene Datenquelle benötigen. Diese können Sie, wie im Artikel Reporting Services Datenquellen (www.datenbankentwickler.net/259) beschrieben erstellen – oder Sie klicken einfach auf Neues Dataset hinzufügen und legen die Datenquelle über die dortige Funktion an.

Hinzufügen eines neuen Datasets per Kontextmenü

Bild 1: Hinzufügen eines neuen Datasets per Kontextmenü

Der Kontextmenü-Eintrag öffnet den Dialog Eigenschaften des freigegebenen Datasets. Hier legen Sie den Namen des Datasets fest. Außerdem wählen Sie die Datenquelle aus den freigegebenen Datenquellen aus. Sollte noch keine freigegebene Datenquelle vorhanden sein oder wollen Sie eine neue Datenquelle erstellen, können Sie das mit einem Klick auf die Schaltfläche Neu… erledigen. Das liefert den Dialog Eigenschaften der freigegebenen Datenquelle, den wir im oben genannten Artikel im Detail beschrieben haben (siehe Bild 2).

Dialog zum Anlegen eines neuen Datasets

Bild 2: Dialog zum Anlegen eines neuen Datasets

An dieser Stelle gehen wir davon aus, dass Sie gemäß der Anleitung in dem oben erwähnten Artikel bereits eine Datenquelle erstellt haben.

Nun schauen wir uns den Abfragetyp an. Hier gibt es drei Möglichkeiten:

  • Text: Eingabe einer Abfrage im SQL-Format. Dazu können Sie verschiedene Tools nutzen, die wir im Anschluss vorstellen werden.
  • Tabelle: Erlaubt die Auswahl einer Tabelle. Diese Option steht jedoch nur in ODBC- oder OLE DB-Datenquellen zur Verfügung.
  • Gespeicherte Prozedur: Wenn Sie die Daten für den Bericht bereits in einer gespeicherten Prozedur vorbereitet haben, können Sie diese aus der Liste der gespeicherten Prozeduren der in der Datenquelle angegebenen Datenbank auswählen.

SQL-Abfrage als Quelle für ein Dataset definieren

Wenn Sie unter Abfragetyp die Option Text wählen, können Sie verschiedene Optionen zum Erstellen der Abfrage nutzen:

  • Abfrage-Designer…: Dies öffnet den Abfrage-Designer, mit dem Sie ähnlich wie im Abfrageentwurf von Access die Datenquelle zusammenklicken können.
  • Importieren…: Öffnet einen Dateiauswahl-Dialog, mit dem Sie eine zuvor gespeicherte Abfragedatei mit der Dateiendung .sql oder .rdl auswählen können.
  • Felder aktualisieren: Aktualisiert die Liste der Felder im Bereich Felder des Dialogs.
  • fx: Diese Schaltfläche öffnet einen Dialog, mit dem Sie den aktuellen Ausdruck bearbeiten und um weitere Informationen anreichern können.

SQL-Abfrage per Abfrage-Designer erstellen

Wählen Sie die Option Abfrage-Designer…, erscheint der Dialog aus Bild 3. Mit diesem fügen Sie zunächst die Tabellen hinzu, deren Daten im Bericht angezeigt werden sollen. Dann markieren Sie die Felder, die im Abfrageergebnis erscheinen sollen. Mit einem Klick auf die Ausrufezeichen-Schaltfläche können Sie das Abfrageergebnis vorab anzeigen lassen. In der Liste der anzuzeigenden Felder können Sie noch Sortierungen und Filterkriterien festlegen.

Entwurfsansicht eines Datasets

Bild 3: Entwurfsansicht eines Datasets

SQL-Abfrage bearbeiten

Die zuvor zusammengestellte SQL-Abfrage können Sie durch einen Klick auf die Schaltfläche mit der Beschriftung fx im Dialog Ausdruck anzeigen (siehe Bild 4). Dieser Dialog zeigt den SQL-Ausdruck in einem Textfeld an, wo Sie diesen manuell bearbeiten können.

Bearbeiten des Abfrage-Ausdrucks

Bild 4: Bearbeiten des Abfrage-Ausdrucks

Darunter finden Sie eine Liste mit Kategorien, nach deren Auswahl die Elemente der jeweiligen Kategorie rechts in der Liste mit der Beschriftung Element angezeigt werden. Diese können Sie allerdings an dieser Stelle nicht nutzen, da ein Hinzufügen nur per Doppelklick auf das jeweilige Element möglich ist, was aber dann den aktuellen Inhalt des Ausdrucks durch den angeklickten Eintrag ersetzt.

Der Bereich Felder in den Dataset-Eigenschaften

Wechseln Sie im Fenster Eigenschaften des freigegebenen Datasets zum Bereich Felder, zeigt der Dialog die Liste der Feldnamen und eine dazu passende Feldquelle an (siehe Bild 5). Hier finden Sie die über den Abfrageentwurf hinzugefügten Felder. Sie können aber noch weitere Felder hinzufügen und damit weitere Informationen für die Verarbeitung in den Berichen bereitstellen. Dazu stellt der Dialog verschiedene Schaltflächen zur Verfügung, zum Beispiel Hinzufügen und Löschen und zwei Schaltflächen zum Ändern der Reihenfolge der angezeigten Felder.

Bearbeiten der Felder der Abfrage

Bild 5: Bearbeiten der Felder der Abfrage

Klicken Sie auf die Schaltfläche Hinzufügen, erscheinen zwei weitere Befehle (siehe Bild 6):

Hinzufügen von Feldern zum Dataset

Bild 6: Hinzufügen von Feldern zum Dataset

  • Berechnetes Feld: Fügt eine neue Zeile hinzu, mit der Sie über die Schaltfläche fx den gewünschten berechneten Ausdruck zusammenstellen können.
  • Abfragefeld: Fügt ein neues Feld hinzu, das Sie manuell ausfüllen müssen.

Berechnete Felder zu Dataset hinzufügen

Ein neues, berechnetes Feld sieht wie in Bild 7 aus.

Einfügen eines berechneten Feldes

Bild 7: Einfügen eines berechneten Feldes

Klicken Sie auf die Schaltfläche fx, erscheint der Dialog Ausdruck. An dieser Stelle, also beim Anlegen oder Bearbeiten eines Datasets, sind die Möglichkeiten dieses Dialogs begrenzt, denn das Dataset ist noch keinem Bericht zugeordnet. Daher können wir, auch wenn wir bereits eine SQL-Abfrage als Datenquelle festgelegt haben, beispielsweise noch nicht auf die Felder dieser Abfrage zugreifen, um diese in Ausdrücken zu verwenden.

Daher erscheint beispielsweise für die Kategorie Felder der Text Das Berichtselement ist nicht mit einem Dataset verknüpft (siehe Bild 8).

Für freigegebene Datasets fehlen wichtige Elemente.

Bild 8: Für freigegebene Datasets fehlen wichtige Elemente.

Also machen wir einen Zwischenschritt und erstellen einen neuen Bericht. Dazu wählen wir den Kontextmenü-Eintrag Hinzufügen|Neues Element… des Projekt-Elements im Projektmappen-Explorer aus und legen im Dialog Neues Element hinzufügen einen neuen Bericht namens KundenMitAnrede.rdl an. Für diesen Bericht fügen wir dann im Bereich Berichtsdaten (einzublenden mit dem Menübefehl Ansicht|Berichtsdaten) eine neue Datenquelle hinzu. Das erledigen wir mit dem Kontextmenü-Befehl Datenquelle hinzufügen… des Ordners Datenquellen. Die neue Datenquelle soll Kundenverwaltung_KundenMitAnrede heißen und die freigegebene Datenquelle Kundenverwaltung nutzen (siehe Bild 9).

Hinzufügen der eingebetteten Datenquelle zu einem Bericht

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins DATENBANKENTWICKLER:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar