21.06.2010, 12:07 Uhr

Berichtswesen 2.0 - die SQL Server Reporting Services 2008 R2

Die SQL Server 2008 Reporting Services zeichnen sich durch viele kleine, gut durchdachte Neuerungen aus, die den Alltag vereinfachen und die Visualisierungsmöglichkeiten verbessern. Auch die Ausdruckssprache hat ein längst überfälliges Facelift erfahren.
von Jens KonerowDie Reporting Services sind ein fester Bestandteil der SQL Server-Plattform. Sie bieten eine zentrale Anlaufstelle zum Abruf und zur Verwaltung von Berichten. Über die webbasierte Benutzeroberfläche, dem Report Manager, werden Verbindungsparameter konfiguriert, Berichte angezeigt oder Zeitpläne erstellt. Die Bedienung des Report Managers ist dank Kontextmenüs im SharePoint-Stil einfacher (Abbildung 1). Zudem ist neben der Standardansicht eine Detailansicht verfügbar. Der Integration sind Webdienste, URL-Referenzierungen und das kostenlose ReportViewer-Steuerelement für Windows Forms und ASP.NET dienlich. Zudem besteht die Möglichkeit die Reporting Services im SharePoint-integrierten Modus auszuführen. Anfang Mai erschien das zweite Release des SQL Server 2008, mit dem Microsoft ihren Standpunkt im Bereich Business Intelligence festigt. Die Reporting Services haben viele Neuerungen erfahren. Angefangen bei der Ausdruckssprache, über die Definition und Wiederverwendung von Datenquellen, bis hin zur Benutzeroberfläche der Designer. Abbildung 1: Der überarbeitete Report Manager SpracherweiterungenAusdrücke erweitern die Gestaltungsmöglichkeiten und gewährleisten die Flexibilität beim Berichtsentwurf. Die Ausprägung der Ausdrücke erinnert an eine Mischung aus Visual Basic und den Formeln aus Microsoft Excel. Im Gegensatz zu Excel-Formeln gewähren die Reporting Services den Zugriff auf Namensräume des .NET Frameworks. Indirekt unterstützen die Reporting Services sämtliche Sprachen auf Basis der CLR, indem Berichte auf spezifische Assemblies verweisen und deren Funktionalität nutzen.Eine wesentliche Neuerung ist die Aggregation von Aggregationen. Folgendes Beispiel ermittelt den Durchschnitt aller monatlichen Kosten: =Avg(Sum(Fields!Charges.Value, "Month"),"Year") Ebenfalls optimiert wurde das Seitenmanagement. In vorherigen Versionen der Reporting Services gaben die Variablen PageNumber und TotalPages die aktuelle Seitenzahl sowie die Anzahl der gesamten Seiten wider. Seitenumbrüche konnten vor oder nach einer Datenregion erfolgen. Jene Informationen liefern in den SQL Server 2008 R2 Reporting Services die Variablen OverallPageNumber und OverallTotalPages. PageNumber und TotalPages beziehen sich auf das aktuelle, optional benannte, Kapitel. Die Optionen der Datenregionen steuern, ob ein Seiteneinbruch die Variablen PageNumber und TotalPages zurücksetzt. Durch die Vergabe von Seitennamen profitiert der Excel-Export in der Form, dass die Renderingerweiterung pro Kapitel ein Excel-Sheet erzeugt.Ob derartige Strukturierungen oder interaktive Features wie Drilldowns erwünscht sind hängt vom Ausgabeformat ab. Die SQL Server 2008 R2 Reporting Services ermöglichen eine Einflussnahme auf den Bericht in Abhängigkeit des Ausgabeformats, indem die RenderFormat-Eigenschaft abgefragt wird. Während Drilldowns in Excel möglich und sinnvoll sind, empfiehlt sich beim PDF-Format die Anzeige aller Daten. Ob das Ausgabeformat interaktionsfähig ist besagt Globals!RenderFormat.IsInteractive. Lookup"sAngenommen ein Bericht zeigt die Liste aller aktuellen Bestellungen. Jede Bestellung besitzt einen Status der numerisch gespeichert wird. Die Beschreibungstexte der Stati liegen in einer Lookup-Tabelle vor. In der Vergangenheit musste die Datenabfrage die Beschreibungstexte liefern. Ein gezielter Zugriff auf die Lookup-Daten eines anderen Datasets war nicht möglich. Diesen Missstand behebt Microsoft bei den SQL Server 2008 R2 Reporting Services mit drei neuen Funktionen>Lookup>LookupSet>MultilookupDie Funktionen ermitteln einen Datensatz einer Name/ Wert-Kombination aus einem Dataset, das nicht an die Datenregion gebunden ist. Die Lookup-Funktion wird für jeden Datensatz in einer Tabelle oder einer Matrix ausgeführt. Bezogen auf das Fallbeispiel sucht die Lookup-Funktion in einem zweiten Dataset den Datensatz heraus, bei dem die Status-ID mit dem Status der Bestellung übereinstimmt. Die Lookup-Funktion eignet sich für 1:1-Relationen. Die Funktion besitzt vier Parameter. Der erste Parameter bestimmt das Fremdschlüsselfeld des gebundenen Datasets. Das Schlüsselfeld des Lookup-Datasets definiert das zweite Argument. Das dritte Argument selektiert ein Feld, dessen Wert die Funktion bei Übereinstimmung der Schlüssel zurückgibt. Als letztes Argument fordert die Funktion den Namen des Lookup-Datasets. =Lookup(Fields!StatusID.Value, Fields!StatusID.Value, Fields!StatusName.Value, "Stati") Bei 1:n-Relationen kommt LookupSet ins Spiel. LookupSet gibt eine Liste von Werten zurück. Beispielsweise um alle Telefonnummern einer Person abzurufen.=LookupSet(Fields!Person.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneNumbers")Bei Bedarf verknüpft Join alle Werte der Ergebnisliste jeweils mit einem Trennzeichen. =Join(LookupSet(Fields!Person.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneNumbers"), ";")Multilookup werten einen Satz von Name-Wert-Paaren aus und liefert das Ergebnis als Liste zurück. Im Hintergrund führt das zur Ausführung der Lookup-Funktion pro Datensatz. Infolgedessen eignet sich die Multilookup-Funktion nur für 1:1-Relationen.Report Builder 3.0Seit den SQL Server 2008 Reporting Services liefert Microsoft einen autonomen Berichtsdesigner namens Report Builder. Der SQL Server 2008 R2 führt den Report Builder 3.0 ein. Die Benutzeroberfläche ist an Microsoft Office angelehnt (Abbildung 2) und ist im webbasierten Report Manager verknüpft. Ein Klick auf "Berichtsgenerator" führt zur Verteilung der Applikation via ClickOnce.Bis dato operierte der Report Builder immer im Local Mode. Das heißt die Anwendung rendert die Berichte lokal, unabhängig vom Berichtsserver. Der Report Builder 3.0 nutzt den Server Mode. Dies hat mehrere Vorteile. Insbesondere fehlerhafte, gemeinsam genutzte Datenquellen fliegen schnell auf. Zudem gewährt der Report Builder, genauso wie das Business Intelligence Studio, nun die Adhoc-Korrektur der Verbindungsparameter einer freigegebenen Datenquelle. Eine Umstellung auf den Local Mode ist möglich. Abbildung 2: Der Report Builder 3.0 im Office Look Shared DataSetsBeim Anlegen neuer Datenabfragen sticht eine weitere Neuerung ins Auge: Die Shared Datasets (Abbildung 3). Analog zu den Datenquellen können Benutzer spezifische Datenabfragen zentral auf dem Berichtsserver ablegen. Andere Benutzer greifen dann auf die vorgefertigten Datenabfragen zurück. Die Idee des zentralen Repositories wurde auch auf Berichtsteile ausgeweitet. Sowohl aus dem Business Intelligence Studio als auch aus dem Report Builder 3.0 können Berichtsteile als Komponenten auf dem Server abgelegt werden. Eine Toolbox-ähnliche Auswahl gewährt die Wiederverwendung der Komponenten via Drag&Drop. Abbildung 3: Erzeugung von gemeinsam genutzten DatenabfragenNeue SteuerelementeDie SQL Server 2008 Reporting Services zeichnen sich durch viele kleine, gut durchdachte Neuerungen aus, die den Alltag vereinfachen und die Visualisierungsmöglichkeiten durch Kartendarstellungen, Indikatoren und Mini-Diagrammen für Tabellen bzw. Matrizen ausweiten. Die Ausdruckssprache hat ebenfalls ein Facelift erfahren. Etwa die Abfrage von Name-Wert-Paaren aus nicht gebundenen Datasets war lange überfällig. Microsoft trägt dem mit den Lookup-Funktionen Rechnung. Abbildung 4: Visualisierung von Regionen und Strecken Sowohl die Sparklines als auch die Data Bars sind abgespeckte Diagramme zur Integration in Tabellen und Matrizen. Sparklines bilden zeitliche Verläufe ab. Deren Einsatz ist nur in Gruppen möglich. Im Gegensatz dazu stehen die Data Bars, die Differenzen zwischen verschiedenen Werten herausarbeiten. Neue Indikatorsteuerelemente runden das Paket ab. Die Indikatoren zeigen Trends mit Pfeilen auf, reflektieren den Geschäftsstatus mit einer Ampel oder warnen vor kritischen Zuständen mit Stoppschildern. Durchdachte NeuerungenDie SQL Server 2008 Reporting Services zeichnen sich durch viele kleine, gut durchdachte Neuerungen aus, die den Alltag vereinfachen und die Visualisierungsmöglichkeiten durch Kartendarstellungen, Indikatoren und Mini-Diagrammen für Tabellen bzw. Matrizen ausweiten. Die Ausdruckssprache hat ebenfalls ein Facelift erfahren. Etwa die Abfrage von Name-Wert-Paaren aus nicht gebundenen Datasets war lange überfällig. Microsoft trägt dem mit den Lookup-Funktionen Rechnung. Jens Konerow studiert Informatik an der Universität Lübeck (Deutschland). Zu seinen Lieblingsthemen gehört Spieleprogrammierung mit DirectX und XNA. Peter Monadiemi


Das könnte Sie auch interessieren