BIm ersten Teil wurden die wesentlichen Elemente eines parametrisierten Reports auf Basis einer relationalen Datenquelle gezeigt. In diesem Teil defineren wir eine eigene Datenquelle auf Basis des „Adventure Works DW 2008R2“ Cubes. Falls sie den Cube noch nicht erstellt haben, muss dies zunächst erfolgen werden. Dazu wird das Projekt Adventure Works DW 2008 welches typischerweise unter „C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks 2008R2 Analysis Services Project\enterprise\Adventure Works DW 2008“ liegt in Visual Studio (Administratorkontext) aufgerufen. Überprüfen Sie den Connectionstring und passen ihn gegebenenfalls an. Anschließend wählen Sie im Solution Explorer unter „Cubes“ den Eintrag „Adventure Works.cube“ aus und aus dem Kontextmenue „Process“. Nach erfolgreichem durchlaufen der Berechnungen ist der Cube erstellt und steht zur Verfügung.
Wir erstellen ein neues Projekt in Visual Studio und nehmen als Vorlage ein „Report Server Projekt“. Im Solution Explorer wählen wir unter „Shared Data Sources“ im Kontextmenue „Neue Datenquelle hinzufügen“ aus.
Wir benennen Die Verbindung „Adventure Works“ und wählen als Typ „Microsoft SQL Server Analysis Services“ aus. Den Connectionstring kann man sich mit Hilfe des Wizzards bilden lassen indem „Bearbeiten…“ ausgewählt wird. Wir geben den Servernamen an und wählen als Datenbank den Cube „Adventure Works DW 2008R2“ aus.
Im Solution Explorer wählen wir im Kontextmenü von „Reports“ den Eintrag „Neuen Report hinzufügen“ aus. Es öffnet sich der Wizzard:
Zunächst erstellen wir eine Verbindung zu unserer oben erstellten Datenquelle:
Anschließend öffnen wir den Abfrage Designer;
Jetzt bilden wir die folgende einfache MDX-Abfrage, indem sie gleich in die Eingabeansicht wechseln:
Select {[Measures].[Order Count]} ON COLUMNS,
[Product].[Product Model Lines].AllMembers ON ROWS
FROM [Adventure Works]
Nun erweitern wir die Abfrage und fügen einen Parameter ein, der nach den Produktlinien filtern soll. Dazu Ändern wir die Abfrage wie folgt mit einem Sub-Select ab:
Select {[Measures].[Order Count]} ON COLUMNS,
[Product].[Product Model Lines].AllMembers ON ROWS
FROM (SELECT ( STRTOSET ( @ProductLines, CONSTRAINED) ) ON COLUMNS
FROM [Adventure Works])
Nun haben wir eine parametrisierte MDX-Abfrage erstellt. Als nächstes fügen wir eine Wertemenge für diesen Parameter ein, indem wir in der Menüleiste auf das Symbol der Parametereingabe klicken:
Hier füllen wir im Beispiel die folgenden Werte aus:
Den Parameternamen geben wir vor. Die Dimension wählen wir aus allen Dimensionen der Datenquelle aus, sowie die Hierarchie. Ferner geben wir an, ob der Parameter mehrere Werte beinhalten darf oder nicht. Anschließend wählen wir noch einen oder mehrere Standardwerte aus.
Anschließend definieren wir unseren parametrisierten Report. Wir wählen zunächst einen Matrix-Report aus.
Ferner legen wir fest, welche Felder in unserem Report in die Spalten, Zeilen und in die Werte Zellen geschrieben werden sollen.
Nach Auswahl eines geeigneten Designs ist unser parametrisierter OLAP Report fertig und benötigt nur noch eine Bezeichnung.
Der Report sieht wie folgt aus:
Der Report kann über die Registerkarte “Vorschau” angezeigt werden.
Nun kann auf Basis der Cube Daten ein parametrisierter Report angezeigt werden, der nach den Werten der ausgewählten Dimension filtert.