Inhaltsverzeichnis         

5 Reporting Services

5.1 Berichte und Modelle

Berichte sind die Benutzerschnittstelle von Business Intelligence Lösungen (BI). Sie präsentieren dem Benutzer die Ergebnisse von Datenanalysen.




5.2 Architektur






5.2.1 Komponenten

Komponente

Beschreibung

Berichtsserver

Fasst alle Komponenten für die Speicherung, Verteilung und Rendern der Berichte zusammen.

Programmierschnittstellen

Ein Satz von Webservices, mit dem alle Komponenten des Berichtsservers von Anwendungen angesteuert werden können

Berichtsprozessor

Zentrale Instanz der Reporting Services. Nimmt Berichtsanforderungen entgegen, erstellt gemäß der Anforderungen Berichte und liefert diese aus.

Berichtsserverdatenbanken

Die Datenbank Reportserver, welche alle Objektdefinitionen von Berichten speichert, sowie die Datenbank Reportservertempdb zur Aufnahme temporärer Informationen bei der Berichtserstellung.

Renderingerweiterungen

Menge von Komponenten, die aus den Daten und den RDL- Definitionen der Berichte einen Bericht in einem speziefischen Ausgabeformat erzeugt.

Datenverarbeitungserweiterungen

Menge von speziellen Datenbankprovidern (Anbindungen an Datenbanken). Verwalten die Datenbankverbindungen und die Parameterübergabe. Z.B. Provider für SQL- Server, Oracle, ...

Authentifizierungserweiterungen

Methoden zur Authentifizierung von Benutzern, z.B. "Integrierte Windowsauthentifizierung" oder "Eingabe von Benutzername und Passwort"

Prozessor für Zeitplanung und Übermittlung

Definition und Realisierung von Zeitplänen für die Erstellung und Auslieferung von Berichten. Basiert auf SqlServer Agent.

Übermittlungserweiterungen

Übermittlungserweiterungen ermöglichen die Auslieferung von abonnierten Berichten an registrierte Benutzert z.B. über Email oder das Dateisystem in einer Domäne.

Berichtsmanager

ASP.NET- Anwendung zur Verwaltung der Reporting Services über Web

5.3 Werkzeuge für die Berichtserstellung

5.3.1 Visual Studio Business Intelligence Development Studio

Menge von Add Ins für Visual Studio zum Erstellen von Berichten und BErichtsmodellen:

5.3.2 Berichts- Generator

.NET Anwendung, die über Click Once installiert wird, mit dem der Benutzer auf Basis von existierenden Berichtsmodellen einfache Berichte erstellen kann.

5.4 Konfiguration

Im Folgenden die empfohlenen Konfigurationen für die Reporting Services von Microsoft. Die Konfiguration mit dem geringsten Aufwand an Hardware und minimalsten Bedarf an Softwarelizenzen ist die gemeinsame Installation von Berichtsserver und Berichtsserverdatenbanken auf einem Server. Jedoch kann der Server dann schnell ausgelastet werden, da im Berichtsserver keine Speicherplatzbeschränkungen einstellbar sind.

5.4.1 Konfiguration für kleine Unternehmen

In dieser Konfiguration werden Berichtsserver und Berichtsserverdatenbanken physisch getrennt. Dabei werden zwei SQL- Server Lizenzen fällig (eine für die Ausführung des Berichtsserverdienstes auf A, und eine für den Betrieb der Berichtsserverdatenbanken auf B).




5.4.2 Skalierbare Konfiguration

Diese Konfiguration ist bezüglich seiner Leistungsfähigkeit erweiterbar, und kann somit mit einem Unternehmen "mitwachsen". Dabei kommen weitere Microsoft Servertechnologien zum Einsatz.




5.5 Konfigurationstools

Die Konfiguration der Reporting- Services wird durch Tools unterstützt.

5.5.1 Reporting- Services Konfigurationsmanager

Das Tool kann über die Start/Programme/SqlServer 2005/Konfigurationstools/Reporting Services Konfiguration gestartet werden. Es können folgende Einstellungen vorgenommen werden:

5.5.2 Managment Studio

Verwaltung sämtlicher Resourcen auf dem Berichtsserver. Weiter können auf Basis bereits angelegter Datenquellen bzw. Datenquellansichten Berichtsmodelle erstellt werden.

5.5.3 Berichts Manager

ASP.NET- Anwendung zur Verwaltung von Resourcen auf dem Berichtsserver über Web.

http://localhost/Reports

Achtung: Unter Windows Vista muss für die ReportingServices in der SqlExpress Advanced Edition der Browser mit Administratorrechten gestartet werden, sonst können keine Änderungen im Berichtsmanager durchgeführt werden.

5.6 Berichte erstellen

5.6.1 Ablauf






5.6.2 Struktur eines Berichtsdokumentes

Berichte werden durch RDL (Report Definition Language) Dateien definiert. RDL ist ein von Microsoft definiertes XML- Vokabular.




5.6.3 VB.NET- Ausdrücke und Skripte

Bei der Verarbeitung eines Berichtes durch den Berichtsprozessor kann dieser Ausdrücke und Scripte in VB.NET auflösen und Verarbeiten. Das Verfahren ähnelt dem von ASP.NET - Seiten. Mittels der VB.NET Ausdrücke werden z.B. von Berichtselementen aus auf die Felder des aktuellen Datensatzes aus einem Datenset zugegriffen. Im Folgenden die wichtgsten Skriptausdrücke

Ausdruck

Beispiel

Erläuterung

TotalPages
=Global!TotalPages

Globale Variable, die die Anzahl der Seiten zurückgibt

UserUserID
=User!UserUSerID

Globale Variable, die den Benutzer zurückgibt

Lnaguage
=Globals!Language

Globale Variable, die die Kulturkennung für den Bericht zurückgibt

ReportServerUrl
=Globals!ReportServerUrl

Globale Variable, die die URL des ReportServers zuurückgibt

ReportFolder
=Globals!ReportFolder

Gloable Variable, die den Pfad des Ordners zurückgibt, in dem der Bericht bereitgestellt wurde

ExecutionTime
=Globals!ExecutionTime

Globale Variable, die den Zeitpunkt der Erstellung des Reports zurückgibt

ReportName
=Globals!ReportName

Globale Variable, die den Name des Berichtes zurückgibt

Parameters!<Name Parameter>.Value
=Parameters!start.Value

Gibt den Wert eines Berichtsparameters zurück

ReportItems!<Name Bereichtelement>
=ReportItems!Text1.Value

Zugriff auf ein Bereichtselement und dessen Eigenschaften

Fields!<Name Datenfeld>.Value
Sum(Fields!SizeInBytes.Value, "DmsMinDataSet")

Zugriff auf den Wert eines Feldes im akutellen Datensatz aus einem Dataset (hier "DmsMinDataSet")

Die Werte fast aller Eigenschaften eines Berichts können aus Ausdrücken evaluiert werden. Dabei können im Element Code selbstdefinierte Funktionen hinterlegt werden, um die Funktionalität der Ausdrücke zu erweitern.

Im Folgenden ein Auszug aus den vordefiniertern Funktionen:

Funktion

Beispiel

Erläuterung

Sum(<Eigenschaft>)
=Sum(Fields!SizeInBytes.Value)

Summe aller Eigenschaftswerte in der aktuellen Gruppe

Sum(<Eigenschaft>, <Scope>)
=Sum(Fields!SizeInBytes.Value, "DmsMinDataSet")

Summe aller Feldwerte über alle Datensätze des Datasets DmsMinDataSet

IIF(<Bedingung>, <Ausdruck wenn true>, <Ausdruck wenn false>)
=IIF(Fields!SizeInBytes.Value < 1024*1024, "Green", "Red")

Bedingte Evaluierung. Das Beispiel würede z.B. alle Zellen in einer Tabelle grün einfärben, wenn der Wert "SizeInBytes" < 1MB ist

Statische .NET- Methoden
=System.IO.Path.GetDirectoryName(Fields!path.Value)

Statische Methoden des .NET Frameworks können dierekt in den Ausdrücken verwendet werden. Hier wird aus einem Dateinamen nur der Name des Verzeichnisses extrahiert.



Ü: Bericht, der alle Globale Variablen in Textboxen ausliest.

5.6.4 Datenquellen definieren

Datenquellen sind Container, die die Verbindungsinformationen zu einem Datenbankserver enthalten (Verbindungszeichenfolgen). Es werden zwei Arten von Datenquellen unterschieden:

Bereichtsspezifische Datenquellen

Freigegebene Datenquellen

  • Verbindungs- und Authentifizierungsdaten sind in die RDL- Datei des Berichtes integriert

  • Datenquelle ist nur für den Bericht verfügbar, in dem sie definiert wurde

Bsp.: In einen Bericht integrierte Datenquelle

<Report>
  <DataSources>
    <DataSource Name="DataSourceDmsMin">
      <rd:DataSourceID>
          8eda0301-ecc0-4601-ae66-2f5ce7fffcd0
      </rd:DataSourceID>
      <ConnectionProperties>
        <DataProvider>SQL</DataProvider>
        <ConnectString>
          Data Source=.;Initial Catalog=dmsmin
        </ConnectString>
        <IntegratedSecurity>true</IntegratedSecurity>
      </ConnectionProperties>
    </DataSource>
  </DataSources>  
  ...
</Report>
  • Verbindungs- und Authentifizierungsdaten sind in einer RDS- Datei abgelegt.

  • Die Datenquelle bekommt einen GUID als ID.

  • In den Berichten über die ID der Datenquelle auf diese verwiesen

  • Freigegebene Datenquellen werden als eigenständige Objekte auf dem Server bereitgestellt

Bsp.: Bezug auf eine freigegebene Datenquelle aus einem Bericht heraus


<Report>
  <DataSources>
    <DataSource Name="DmsMinDataSource">
      <rd:DataSourceID>
        b5010727-7a9f-4880-8ae9-3951d6a413d4
      </rd:DataSourceID>
      <DataSourceReference>DmsMinDataSource</DataSourceReference>
    </DataSource>
  </DataSources>  
  ...
</Report>

Freigegebene Datenquelle sind i.a. besser wartbar, und sind deshalb zu bevorzugen.

Ü: Datenquelle auf DmsMin und HC1 als freigegebene Datenquellen definieren.

5.6.4.1 Datenquellen und Anmeldeinformationen

5.6.4.1.1 Integrierte Sicherheit von Windows

Der Zugriff auf die Daten in der Datenbank erfolgt mit den Anmeldeinformationen des Berichtskonsumenten.

5.6.4.1.2 Gespeicherte Anmeldeinformationen

Pro Datenquelle kann 1 Anmeldeinformationssatz auf dem Berichtsserver verschlüsselt gespeichert werden.

Datenquelle <--> Berichtsserver.Menge_der_verschlüsselten_Anmeldeinformationen

Gepeicherte Anmeldeinformationen sind notwendig, wenn :

5.6.4.1.3 Keine Anmeldeinformationen

Diese Form ist sinvoll, wenn gilt:

5.6.5 Datasets, Abfragen, Abfrageparameter und Berichtsparameter

Die zu präsentierenden Daten entnehmen Berichte sog. Datasets. Datasets kapseln Abfragen und Abfrageparameter, und abstrahieren so von den speziellen Abfragesparachen wie TSQL oder Oracle- SQL. In den RDL- Dateien werden die Datasets im Element <Datasets> definiert. Beispiel:

<Report>
  <DataSets>
    <DataSet Name="DmsMinDataSource">
      <Fields>
        <Field Name="photography_place">
          <DataField>photography_place</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="recording_time">
          <DataField>recording_time</DataField>
          <rd:TypeName>System.DateTime</rd:TypeName>
        </Field>
        <Field Name="img">
          <DataField>img</DataField>
          <rd:TypeName>System.Byte[]</rd:TypeName>
        </Field>
        <Field Name="taxonomy_of_content">
          <DataField>taxonomy_of_content</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>DmsMinDataSource</DataSourceName>
        <CommandText>
          SELECT     photography_place, recording_time, img, taxonomy_of_content
          FROM         FotosView
          WHERE     (taxonomy_of_content = N'picture/photo')
          ORDER BY photography_place</CommandText>
      </Query>
    </DataSet>
  </DataSets>
  ...
</Report>

5.6.5.1 Verfeinerung der Abfrage mit Abfrageparametern

<Report>
  ...
  <!-- Berichtsparameter: Dienen zum Parametrieren von Berichtsinternen Skripten und Abfragen -->

  <ReportParameters>

    <ReportParameter Name="start">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>

      <!-- Das Prompt ist die Beschriftung der Eingabefelder im Berichtviewer für den Berichtsparameter -->      
      <Prompt>Zeitraum_Start</Prompt>
    </ReportParameter>
    <ReportParameter Name="end">
      <DataType>DateTime</DataType>
      <AllowBlank>true</AllowBlank>
      <Prompt>Zeitraum_ende</Prompt>
    </ReportParameter>
  </ReportParameters>

  ...

  <DataSets>
    <DataSet Name="DmsMinDataSource">
      <Fields>
        <Field Name="photography_place">
          <DataField>photography_place</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="recording_time">
          <DataField>recording_time</DataField>
          <rd:TypeName>System.DateTime</rd:TypeName>
        </Field>
        <Field Name="img">
          <DataField>img</DataField>
          <rd:TypeName>System.Byte[]</rd:TypeName>
        </Field>
        <Field Name="taxonomy_of_content">
          <DataField>taxonomy_of_content</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>DmsMinDataSource</DataSourceName>

        <!-- Abfrage mit Abfrageparametern -->
        <CommandText>
          SELECT     photography_place, recording_time, img, taxonomy_of_content
          FROM         FotosView
          WHERE     (taxonomy_of_content = N'picture/photo') and recording_time between @start and @end
          ORDER BY photography_place
        </CommandText>
         
        <!-- Zurodnung der Abfrageparameter zu Berichtsparametern -->
        <QueryParameters>
          <QueryParameter Name="@start">
            <Value>=Parameters!start.Value</Value>
          </QueryParameter>
          <QueryParameter Name="@end">
            <Value>=Parameters!end.Value</Value>
          </QueryParameter>
        </QueryParameters>

      </Query>
    </DataSet>
  </DataSets>
  ...
</Report>

5.6.5.2 BIDS und Datasets

In BIDS werden die Datasets mit komfortablen Abfrageeditoren und Konfigurationsdialogen entworfen und gewartet. Werden Berichtsparameter, oder Abfrageparameter geändert, so können die Zuordnungen von Berichts- an Abfrageparameter über den Dataset-Konfigurationsdialog (erreichbar im Datendesigner neben dem Dataset- Dropdown- Liste über ...). gewartet werden.

5.6.6 Berichtsvorlagen

Ist eine Menge von Berichten mit einer gleichen Grundstruktur zu verfassen, dann bietet sich die Anlage einer Vorlage in der Visual Studio IDE an. Siehe dazu Berichtvorlagen in VS 2005 & VS 2008.

5.7 Präsentation von Berichtsdaten mittels Berichtselemente

Berichte werden durch RDL- Dateien definiert, die wiederum XML- Dateien sind. Damit haben Berichte eine natürliche, hierarchische Struktur. Der Fokus im folgenden liegt qauf den Strukturen zur Präsentation der Berchtsdaten.




5.7.1 Berichtselemente

Die Berichtsdaten werden mittels Bereichtselementen präsentiert. Berichtselemente haben folgenden allgemeine Eigenschaften:


Im Folgenden werden die Bereichtselemente kurz vorgestellt:

5.7.1.1 Textfeld

Textfelder präsentieren alphanummerische Daten in einem rechteckigen Fenster. Wesentliches Gestaltungsmerkmal sind der Schriftfont und die Schriftfarbe.

5.7.1.2 Bild

Einbetten von Bildern in Berichten. Die Bilder können von der Festplatte, von einem Webserver oder aus einer Datenbank eingelesen werden.

Ü: Bericht mit Logo von HDD

5.7.1.3 Linie

Linien sind rein graphische Gestaltungselemente.

5.7.1.4 Rechteck

Rechtecke bilden Container für untergeordnete Bereichtelemente. Werden z.B. Rechtecke ausgeblendet, dann werden auch alle im Rechteck enthaltenen Bereichtselemente ausgeblendet

5.7.1.5 Liste

Liste stellt für jeden Datensatz einen rechteckigen Container bereit (Listenelemente). Die in den rechteckigen Listenelementen enthaltenen Berichtselemente können an die Felder des Datensatzes gebunden werden.

5.7.1.6 Tabelle

Tabellen stellen für jeden Datensatz eine Tabellenzeile bereit, deren Zellen wiederum jeweils ein Berichtselement aufnehmen kann. Die Berichtselemente der Zellen können an die Felder des Datensatzes gebunden werden.

5.7.1.7 Matrix

Eine Matrix ist eine Kreuztabelle, die Dimensonale Datensätze aus den Analysis- Services visualisieren kann.

5.7.1.8 Diagramm

Ein Diagamm ist eine graphische Präsentation der Daten aus den Datensätzen. Es werden z.B. Balken, Linien und Tortendiagramme zur Präsentation angeboten.

5.7.1.9 Unterbericht

Ein Unterbericht ist ein rechteckiger Bereich, in dem ein weiterer Bericht eingeblendet werden kann. Besonders sinnvoll ist dieses Element, wenn die Datenauswahl des einzublendenden Berichts über Berichtsparameter konfigurierbar ist.

5.7.2 Gruppierungen

Gruppierte Daten können auf Berichtsstrukturen in Verschiedenen Varianten abgebildet werden:

5.7.2.1 Gruppierungen in Tabellen

In Tabellen können so konfiguriert werden, das die unnötige Wiederholung von Gruppenfelder unterdrückt wird. Dazu ist das Kontextmenü der Detailzeile aufzurufen, und in diesem die Funktion "Gruppe einfügen..." auszuwählen. Im erscheinenden Gruppierungsdialog ist das die Gruppe definierende Feld auszuwählen.




5.7.2.2 Gruppierungen in Listen




5.7.3 Sortierungen

Auf dem Berichtsserver können die Daten während des renderns nochmals sortiert werden. So können z. B. Tabellenzeilen von data.fileinfos, die in einem Tabellenelement dargestellt werden sollen, nochmals bezüglich SizeInBytes absteigend sortiert werden.

5.7.4 Filterung

Datasets können auf dem Berichtsserver während des renderns gefiltert werden. Die Auswahl der anzuzeigenden Datensätze sollte bereits in der Abfrage auf der Datenquelle erfolgen. Wenn aber eine Einschränkung der Datensatzmenge in der Abfrage auf der Datenquelle in der gewünschten Weise nicht möglich ist, kann dies auf dem Reportserver durch die Filter in der Datenquelle als auch in den Reportitems nachgeholt werden.

5.7.5 Drilldown und Drillup

Drilldown und -up kann in Reports mittels einer Kombination aus Gruppierung und Sichtbarkeitsstatus von Berichtselemente implementiert werden. Dabei sind die Detailgruppen initial unsichtbar zu schalten. Der Sichtbarkeitszustand wird kann dann von einem Textfeld in der Gruppenzeile sichtbar bzw. unsichtbar geschaltet.

5.7.6 Hyperlinks

Über Hyperlinks kann zwischen Berichten navigiert werden. So können aus einer Datensatzpräsentation weitere Detailberichte aufgerufen werden.

5.7.7 Dokumentstruktur

Die Dokumentstruktur ist ein interaktives Berichtelement, das eine hierarchiche Darstellung der im Bericht repräsentierten Datensätze ermöglicht. Es ist sinnvoll, bei sehr vielen Datengruppen mittels der Dokumentstruktur dem Benutzer eine schnelle Navigation innerhalb der Gruppen zu geben. Dazu ist für die Gruppe unter Navigation der sog. Dokumentstrukturbezeichner zu definieren.

Bsp: Liste der erfassten Verzeichnisse in DMSMIN (hirarchy_id), wobei pro Listenelement alle im Verzeichnis enthaltenen Dateien aufgelistet werden.

5.8 Ad- Hoc Berichte aus Berichtsmodellen generieren

Häufig ist es notwendig, das im Berichtswesen zu verarbeitenden Zahlenmaterial schnell in einen Aussagekräftige Form für eine aktuelle Entscheidungsfindung zu verwandeln. Reporting Services bietet auf der Basis sog. Berichtsmodelle mit dem Berichtsgenerator ein leistungsfähiges Werkzeug für die Erstellung solcher Ad- Hoc Berichte an.

5.8.1 Berichtsmodelle

Das Ziel von Berichtsmodellen ist es, eine Datenbasis aus einer relationalen, oder multidimensionalen Datenbasis zu gewinnen, die direkt in Berichte eingesetzt werden können. Dazu werden die für eine Menge von Auswertungen relevanten Daten aus einem größeren Datenmodell ausgewählt. Für bestimmte Datentypen werden automatisch häufig benötigte Aufteilungen und Zusammenfassungen automatisch vorgenommen. So werden aus DateTime- Spalten zusätzliche Spalten für Tag, Monat, Jahr etc. gebildet. Auch häufig benötigte Aggregationen werden automatisch angeboten.

Für relationale Datenbanken werden Berichtsmodelle im BIDS mittels Berichtsmodellprojekten erstellt. Für Analysis. Services können Berichtsmodelle nur im Managment Studio oder im Report Manager erstellt werden (Die Verbindungszeichenfolge kann aus den Datenquellen von Report- Service- Projekten entnommen werden).

Die Generierung eines Berichtsmodells wird über Modellierungsregeln gesteuert.




5.8.2 Berichtsgenerator

Mit dem Berichtsgenerator können die in einem Berichtsmodell für die Auswertung vorbereiteten Daten effizient zu Reports verbaut werden.




5.8.2.1 Filter

Mittels Filter können die Daten im Bericht noch stärker eingeschränkt werden, als es das Berichtsmodell ursprünglich vorsieht. Die Filter wirken bereits bei der Slektion der Daten aus den Datenquellen.

Filter werden über den Daten Filtern Dialog programmiert (Symbolleitste/Symbol Trichter). Dabei werden in Gruppen unterteilte Filterausdrücke programmiert. In den Gruppen können für Felder Filterbedingungen definiert werden, die durch logische UND oder ODER- Operationen verknüpft sind.

5.8.2.2 Links- Regel für Gruppierung und Aggregation

Für alle Felder links von eienm Aggregatfeld werden die Aggregatwerte für alle in diesen Feldern bildbaren Gruppen erzeugt.


Durch die Linksregel werden häufig zuviele Aggregate gebildet. Die Überzähligen können dann im Kontextmenü des Reiters über der Spalte abgeschaltet werden.



5.9 Berichtsverwaltung

Auf dem Berichtsserver werden die erstellten Berichte in einer Ordnerstruktur Verwaltet. Berichte sind nichts weiter als XML- Dateien, und so besteht die Bereitstellung des Berichts einfach in einem Dateiupload der entsprechenden RDL-Datei.


Ein auf dem Server bereitgestellter Bericht kann anschließend konfiguriert werden:




5.9.1 Ausführungsoptionen

In der Standardeinstellung werden bei jedem Berichtszugriff die aktuellen Daten aus der Datenquelle abgerufen und mit der RDL- Datei zu einem Bericht verarbeitet. Diese Verfahren garantiert aktuelle Berichte. Der Server wird dabei am stärksten belastet.

Achtung: Die folgenden Ausführungsoptionen setzen voraus, daß die Anmeldeinformationen für die Daten in den Datenquellen auf dem Berichtsserver gespeichert sind.

5.9.1.1 Cache

In Fällen, wo die Anforderungen an die Aktualität der Berichte weniger streng sind (z.B. Berichtsdaten ändern sich in Zeiträumen > 1 Min) können Zwischenstände als Kopien in einem Cache gespeichert werden. Der Cache hält dabei für einen speziellen Satz von Berichtsparametern eine Kopie eines fertigestellten Berichtes zur Auslieferung für einen einstellbaren Zeitraum bereit, wie folgendes Bild zeigt:




5.9.1.2 Snapshot

Snapshots stellen eine besondere Betriebsart des Caches dar. Im Normalbetrieb wird nach Ablauf der Verfallszeit die Berichtskopie im Cache gelöscht. Eine neue Kopie wird erst ertsellt, wenn der Bericht mit dem speziellen Berichtsparametersatz von einem User erneut abgerufen wird.

Beim Snapshot wird die Kopie durch den Administrator oder gemäß eines serverseitigen Zeitplan erstellt. Individuelle Berichtsparameter können hier nicht mehr berücksichtigt werden. Deshalb ist eine Voraussetzung für einen Snapshot, das für die Berichtparameter, sofern welche vorhanden sind, Standardwerte definiert werden. Diese werden bei der Berichtserstellung berücksichtigt.

Snapshots können im Verlauf gespeichert werden.

5.9.2 Berichtszugriff über Berechtigungen steuern

Der Zugriff Objekte wie Berichte und Datenquellen wird über Berechtigungen auf Ebene der Ordner und Objekte erteilt. Die Subjekte, denen Zugriff erteilt werden kann, sind dabei Windows- Benutzer oder Windows- Benutzergruppen.

Die auf einem Reporting Service- Objekt ausführbaren Operationen sind als Tasks definiert. Diese Tasks werden mittels sog. Rollen zu Paketen von ausführbaren Operationen zusammengefasst. Z.B. umfasst die vordefinierte Rolle Browser folgende Menge von Operationen (Tasks): Bericht anzeigen, Ressourcen anzeigen, Ordner anzeigen, einzelne Abonnements verwalten, Modelle anzeigen.

Eine Berechtigung besteht in der Zuweisung einer Rolle an einen Benutzer für ein ReportingService- Objekt. Die hierarchische Organisation der ReportingService Objekte wird dabei für einen Vererbungsmechanismus ausgenutzt. Alle in der Hierarchie weiter unten stehenden Objekte erben die Berechtigungen der übergeordneten. Diese Vererbung kann für jedes Objekt abgeschaltet, und durch individuelle Berechtigungen ersetzt werden.




5.9.2.1 Zugriff auf Berichte unter Vista

Spezielle "Feature" in Windows Vista entfernen beim Zugriff die Administrativen Rechte von Anmeldungen, um so die Sicherheit zu erhöhen. So kann z.B. ein der Gruppe Administratoren zugehöriger User nicht mehr die Reports über den Report Manager abrufen, obwohl er theoretisch dieses Recht hätte. Nur wenn der IE mit als Administrator explizit ausgeführt wird, gelingt es, über den Report-Manager die Berichte zu verwalten.

Das Problem wird gelöst, indem die Report Manager URL den vertrauenswürdigen Sites in den Sicherheitseinstellungen des IE zugewiesen wird.

5.10 Berichte abrufen und verteilen

Berichte können über den ReportManager, Microsoft SQL- Server Manangment Studio als auch direkt über den ReportServer mittels URL's abgerufen werden. Auch die automatisierte Verteilung von Berichten an registrierte Benutzer (Abonnements) ist möglich.

5.10.1 URL- Abruf

Berichte können direkt vom ReportServer mittels eines komplexen URL abgerufen werden. An den URL können dabei Konfigurationsparameter für den Reportserver, sowie Berichtsparameter angehangen werden. Vorteil dieser Methode ist, das der Abruf z.B. aus Webseiten heraus gestartet werden kann. In der MSDN ist unter der SQL Server 2005 Onlinedokumentation/SQL Server Programming Reference/Reporting Service Programming/URL- Access diese Art des Abrufes vollständig dokumentiert.

Folgende URL ruft den einen Bericht mit den beiden Parameter Gesamt und file_id ab:

http://localhost/ReportServer?%2fRS-DmsMin%2fR07-Berichtsparameter&rs:Command=Render&Gesamt=1000000&file_id=506a1ddf-287e-41a9-a9ae-0017023d8181

5.10.2 Abonnements

Mittels Abonnements können Berichte nach Zeitplänen an registrierte Benutzer verteilt werden. Zwei Arten von Abonnements werden unterscheiden: gewöhnliche Abonnements und datengesteuert Abonnements.

Bei gewöhnlichen Abo's wird für ein Bericht das Übermittlungsziel und ein Zeitplan definiert.

Bei Datengesteuerten Abo's werden die Berichte an eine Liste von Empfängern verteilt, die über eine Abfrage erzeugt wird.

Achtung: Berichte, die über Abonnements verteilt werden, müssen über Datenquellen auf die Datenbanken zugreifen, die über in der Datenquelle fest hinterlegte Anmeldeinformationen verfügen. Denn die Abonnements werden Zeitgesteuert vom SQL- Server Agent angestossen, und da kein user den Bericht abruft, sind auch keine integrierten Windows- Anmeldeinformationen verfügbar. (Siehe S. 608)

Bei den gewöhnlichen Abo's gibt es zwei verschiedene Übermittlungsmethoden:

  1. Übermittlung an eine Dateifreigabe

  2. Übermittlung an eine Email- Adresse