Parametrisierte Reports mit den Reporting Services 2008R2 erstellen (Teil 1)
avatar

Die Reporting Services sind ein sehr mächtiges Tool. Anwender stellen sich oftmals die Frage, wie man ein Auswahlfeld eines Datenbankfeldes definieren und anschließend einen gefilterten Report erstellen kann. Dabei ist zu unterscheiden, ob es sich bei der Datenquelle um eine relationale Datenbank (Teil 1) handelt, oder um einen OLAP Cube (Teil 2). Gerade zu letzterem gibt es immer wieder Fragen. Deshalb soll beides exemplarisch vorgestellt werden. Als Voraussetzung wird für das relationale Beispiel die Demo-Datenbank AdventureWorks2008R2 und für das Cube Beispiel die Demo-Datenbank AdventureWorksDW2008R2 benötigt. Beide sind unter http://www.codeplex.com/MSFTDBProdSamples herunterzuladen. Des weiteren werden die Beispiele der Reporting Services benötigt, die unter http://msftrsprodsamples.codeplex.com/ heruntergeladen werden können.

Relationale Datenquelle

Im ersten Beispiel soll ein Auswahlfeld gezeigt werden, in diesem Fall „Store“.

image

Dazu öffnet man mit Visual Studio im Kontext des Administrators das Projekt „AdventureWorks 2008R2“. Dieses befindet sich in der Regel in dem folgenden Verzeichnis: „C:\Program Files\Microsoft SQL Server\100\Samples\Reporting Services\Report Samples\AdventureWorks 2008R2 Sample Reports\AdventureWorks 2008R2“.  Um einen solchen Report zu erstellen, wird zunächst das parametrisierte Dataset „StoreContacts“ gebildet.  Dazu kann man sich zunächst die Definition der Abfrage betrachten, indem man entweder im Kontextmenue „Abfrage“ wählt, oder enfach doppelt auf den Eintrag klickt. Entscheidend ist dabei der Bereich am Ende der Abfrage: … WHERE (s.BusinessEntityID = @StoreID). D.h. es wird eine parametrisierte Abfrage erstellt. Wir kopieren die Abfrage in die Zwischenablage und erstellen Testweise eine eigene Abfrage. Dazu wählen wir auf der linken Seite im Kontextmenue des Datasets „Dataset hinzufügen“ aus und benennen das Dataset „StoreContacts2“.

image

Anschließend kann der Abfragetext aus der Zwischenablage in das Abfragefenster kopiert und der Parameter in „@StoreID2“ umbenannt werden. Wir bestätigen mit OK. Nun erscheint unter „Parameter“ ein neuer Eintrag „@StoreID2“. Das Dataset „Stores“ besteht aus einer Liste aller Stores und hat zwei Felder „BusinessEntityID“ und „Store“. Dieses Dataset dient als Datenquelle für das Auswahlweld oberhalb des Reports und hat ein Werte-Feld (BusinessEntityID) und ein Bezeichnungs-Feld(Store). Wir wenden uns dem eben automatisch angelegten Parameter „StoreID2“ zu, indem wir es mit einem Doppelklick öffnen.

image

Unter „Verfügbare Werte“ können wir angeben, dass die Werte aus einer Abfrage kommen sollen. Unter DataSet wählen wir „Stores“ aus. Als Werte Feld nehmen wir das Schlüsselfeld „BusinessEntityID“ und als Bezeichnung „Store“. Damit haben wir das Parameterauswahlfeld, welches sich oberhalb des Reports befindet mit der Datenquelle „Stores“  verknüpft. Nun können Reports auf Basis des parametrisierten Datasets erstellt werden. Die Parameterauswahlbox oberhalb des Reports erfolgt automatisch und kann verschiedene Datentypen, die unter dem jeweiligen Parameter zu definieren sind, beinhalten.

Im obigen Beispiel wurde gezeigt, wie ein parametrisierter Report auf Basis einer relationalen Datenquelle erstellt wird. In Teil 2 wird ein parametrisierter Report auf Basis eines Olap-Cubes erstellt.

 

Schreibe einen Kommentar