Freigeben über


Berichtsprozessor

Der Berichtsprozessor ist eine interne Komponente einer Berichtsserverinstanz, der Berichte sowie die Berichtsmodelle, die für die Ad-hoc-Berichterstellung verwendet werden, verarbeitet.

Berichtsverarbeitung (Übersicht)

Die Berichtsverarbeitung beschreibt eine Reihe von Verarbeitungsschritten, die die statischen Anweisungen innerhalb einer Berichtsdefinition in einen gerenderten Bericht umwandeln, der im endgültigen Präsentationsformat angezeigt wird. Das folgende Diagramm zeigt die Phasen und Elemente der Berichtsverarbeitung.

Diagramm für die Berichtsverarbeitung

Diagramm für die Berichtsverarbeitung

Beim Zugriff auf einen Bericht bei Bedarf oder durch Pushzugriff führt der Berichtsserver entweder eine End-to-End-Verarbeitung aus oder gibt einen Bericht zurück, der verarbeitet und anschließend in einem Zwischenformat gespeichert wurde, um ihn nachfolgend in einem bestimmten Format anzuzeigen. Die Einstellungen zur Berichtsausführung bestimmen das Endergebnis. Falls ein Berichtsserveradministrator angibt, dass auf ein Bericht aus dem Cache oder als Snapshot zugegriffen werden soll, wird das Zwischenformat aus der Berichtsserver-Datenbank abgerufen und dann für die Anzeige gerendert. Andernfalls werden alle Verarbeitungsphasen ausgeführt.

Anforderungen für die Berichtsverarbeitung

Der Berichtsprozessor antwortet wie folgt auf diese Anforderungen:

  • Anforderungen eines bedarfsgesteuerten Berichts. Die Aktion eines Benutzers, der einen Bericht öffnet, der so konfiguriert ist, dass er bei Bedarf die Berichtsverarbeitung auf dem Berichtsserver auslöst. Der Berichtsprozessor ruft die Berichtsdefinition ab, sendet die Anforderung für Daten an eine Datenverarbeitungserweiterung, kombiniert die Berichtsdefinition mit den Daten, sendet sie an eine Renderingerweiterung und gibt den gerenderten Bericht zurück. Die Berichtsverarbeitung nach Bedarf tritt auch als Reaktion auf Benutzeraktionen in einem modellbasierten Bericht auf. Ein Benutzer, der einen Datenpfad in einem modellbasierten Bericht durchsucht, löst eine Reihe von Anforderungen für temporäre Berichte mit Durchklicken aus.

  • Anforderungen eines zwischengespeicherten Berichts. Die Verarbeitung für zwischengespeicherte Berichte ist eine Variation der bedarfsgesteuerten Berichterstellung innerhalb des Webdiensts. Die Aktion eines Benutzers, der einen Bericht öffnet, der so konfiguriert ist, dass er über eine zwischengespeicherte Kopie ausgeführt wird, löst die Berichtsverarbeitung aus, wenn die zwischengespeicherte Kopie abgelaufen ist. In diesem Fall wird der Bericht neu verarbeitet, bevor er wieder in den Zwischenspeicher eingefügt und an den Browser des Benutzers gesendet wird.

  • Anforderung vom Prozessor für Zeitplanung und Übermittlung. Die geplante Berichtsverarbeitung wird vom Berichtsserver initiiert und im Hintergrund ausgeführt. Der Pushzugriff auf Berichtsverarbeitung und -übermittlung wird über Zeitpläne und Ereignisse gesteuert, die vom Prozessor für Zeitplanung und Übermittlung des Berichtsservers gehandhabt werden. Wenn die Anforderung empfangen wird, ruft der Berichtsprozessor die Berichtsdefinition ab, sendet die Anforderung von Daten an eine Datenverarbeitungserweiterung, kombiniert die Berichtsdefinition mit den Daten und speichert den kompilierten Bericht in der Berichtsserver-Datenbank.

Phasen der Berichtsverarbeitung

Während der Berichtsausführung verarbeitet der Berichtsserver den Bericht in drei Phasen. Zu diesen Phasen gehört die Berichtsverarbeitung, die Datenverarbeitung und das Rendering. Daten- und Berichtsverarbeitung werden in einer Berichtsdefinition ausgeführt. Das Ergebnis ist ein Bericht im Zwischenformat. Berichte im Zwischenformat werden nachfolgend in einem bestimmten Anzeigeformat gerendert.

Abrufen der Berichtsdefinition

Am Anfang der Berichtsverarbeitung steht eine veröffentlichte Berichtsdefinition. Eine Berichtsdefinition enthält eine oder mehrere Abfragen, Layoutinformationen sowie Codeverweise oder Ausdrücke. Der Berichtsprozessor ruft die Berichtsdefinition von der Berichtsserver-Datenbank ab, initialisiert Parameter und Variablen in Ausdrücken und führt andere Verarbeitungsvorgänge aus, die den Bericht für die Daten vorbereiten. Die Datenverarbeitungserweiterung stellt dann eine Verbindung mit der Datenquelle her und ruft die Daten ab.

Verarbeiten der Daten

Die Datenverarbeitung findet auf einem Datenbankserver statt. Wenn der Bericht statische Datendateien oder XML-Dokumente abruft, kann die Datenverarbeitung auf das Abrufen dieser Dateien und das Zurückgeben der Daten an den Berichtsserver beschränkt sein.

Zusammenführen von Daten und Layout mit einem Zwischenformat

Nachdem die Daten zurückgegeben wurden, werden sie mit den Layoutinformationen in der Berichtsdefinition zusammengeführt, um einen Bericht in einem Zwischenformat zu erstellen. Dieses kann für den schnellen Abruf gespeichert oder an eine Renderingerweiterung weitergeleitet werden, von der der Bericht in ein für den Benutzer darstellbares Format konvertiert wird. Die Daten werden für jeden Abschnitt zeilenweise verarbeitet. Die Abschnitte enthalten den Berichtskopf und -fuß, Gruppenkopf und -fuß sowie Details. Aggregatfunktionen und -ausdrücke werden ebenfalls zu diesem Zeitpunkt verarbeitet.

Ein Bericht, der für das Ausführen als Snapshot konfiguriert wurde oder der im Berichtsverlauf erhalten bleibt, wird immer im Zwischenformat gespeichert, das die Daten- und Layoutinformationen enthält, die beim Speichern des Zwischenformats für den Bericht aktuell waren.

Der Berichtsserver kann das Zwischenformat auf verschiedene Weise verwenden. Zwischenspeicherung, Snapshots und Berichtsverlauf sind Features, für die im Zwischenformat gespeicherte Berichte verwendet werden. Das Zwischenformat ist übertragbar. Es kann in einem beliebigen Exportformat gerendert werden, das vom Berichtsserver unterstützt und auf ihm bereitgestellt wird.

HinweisHinweis

Das Zwischenformat ist ein internes Anwendungsformat. Wenn Sie mit einem Bericht dieses Formats in einer benutzerdefinierten Anwendung arbeiten möchten, müssen Sie Programmierschnittstellen verwenden, die Snapshots erstellen oder abrufen.

Rendern des Berichts

Wenn der Bericht im Zwischenformat vorliegt, können Berichte in ein Präsentationsformat gerendert werden. Ein gerenderter Bericht wird als CLR-Assembly (Common Language Runtime) kompiliert und auf dem Berichtsserver ausgeführt.

In der Renderingphase paginiert die Renderingerweiterung den Bericht und verarbeitet Ausdrücke, die nicht in der Ausführungsphase verarbeitet werden konnten. Dann wird der Bericht im geeigneten gerätespezifischen Format gerendert.

Modellverarbeitung und Berichte mit Durchklicken

Berichte können Berichtsmodelle als eine Schnittstelle zu zugrundeliegenden Datenquellen verwenden. Modelle geben Metadaten an und enthalten Referenzen zu freigegebenen Datenquellen, die die Datenverbindung definieren. Modellverarbeitung wird auf dem Berichtsserver ausgeführt, wann immer die folgenden Benutzeraktionen ausgeführt werden:

  • Durchsuchen eines Modells im Berichts-Generator.

  • Abfragen von Modelldaten beim Erstellen eines Berichts im Berichts-Generators.

  • Navigieren durch Berichte mit Durchklicken auf einem Berichtsserver.

Die Berichtsverarbeitung für Berichte mit Durchklicken ähnelt der Verarbeitung für Berichtsdefinitionen, mit dem Unterschied, dass Berichte statt aus auf dem Server veröffentlichten Definitionen automatisch aus Modellen generiert werden können. Die Datenverarbeitung wird über das Modell für die Abfrage von interessanten Daten initialisiert.