Grundlegendes zu Berichtsdatasets (Berichts-Generator 2.0)
Sie können die Daten für ein Berichtsdataset als Satz von Zeilen und Spalten visuell darstellen. Es müssen mindestens eine Spalte und 0 (null) oder mehr Zeilen vorhanden sein. Zur Entwurfszeit erstellen Sie eine Abfrage, die die Spalten angibt, die aus der Datenquelle abgerufen werden sollen. Sie arbeiten zur Entwurfszeit mit Metadaten, sodass Sie Datasetfelder mit Datenbereichen und Berichtselementen auf der Entwurfsoberfläche verknüpfen können. Zur Laufzeit ruft der Berichtsprozessor die tatsächlichen Daten ab und kombiniert diese mit dem Berichtslayout. Der Bericht wird dann an einen Berichtsrenderer übergeben, mit dessen Hilfe Sie den Bericht anzeigen.
Wenn Sie zur Entwurfszeit eine Datasetabfrage in einem Abfrage-Designer ausführen, wird ein Rowset mit den Beispieldaten angezeigt, das aus der Datenquelle stammt. Wenn ein Benutzer zur Laufzeit den Bericht angezeigt, führt die Datasetabfrage möglicherweise zu anderen Werten, da die Daten in der Datenquelle geändert wurden. Bei jeder Berichtsverarbeitung werden möglicherweise neue Daten angezeigt.
Grundlegendes zu Daten in Berichtsdatasets
Ein Berichtsdataset kann aus den folgenden Datentypen bestehen:
Ein Resultset aus einer relationalen Datenbank, das aus der Ausführung von Datenbankbefehlen, gespeicherten Prozeduren oder benutzerdefinierten Funktionen resultieren kann. Wenn bei einer einzelnen Abfrage mehrere Resultsets abgerufen werden, wird nur das erste Resultset verarbeitet, alle weiteren Resultsets werden ignoriert. Wenn Sie im textbasierten Abfrage-Designer z. B. die folgende Abfrage ausführen, wird im Ergebnisbereich nur das Resultset für Production.Product angezeigt:
SELECT ProductID FROM Production.Product GO SELECT ContactID FROM Person.Contact
Ein vereinfachtes Rowset von mehrdimensionalen Datenquellen, die das XMLA (XML for Analysis)-Protokoll verwenden. Einige Datenprovider stellen zusätzliche Zellen- und Dimensionseigenschaften aus der Datenquelle bereit, die Sie im Resultset nicht sehen können, im Bericht jedoch verfügbar sind.
Ein vereinfachtes Resultset aus XML-Datenquellen, u. a. XML-Elemente, deren Attribute und deren untergeordnete Elemente.
Ein Resultset von einem beliebigen registrierten und konfigurierten .NET Framework-Datenprovider.
Daten aus einem Berichtsmodell, das für eine bestimmte Datenquelle entworfen wurde, mit vordefinierten Entitäten, Entitätenbeziehungen und Feldern. Weitere Informationen finden Sie unter Erstellen von Berichtsdatasets für ein Berichtsmodell (Berichts-Generator 2.0).
Wenn der Bericht zur Laufzeit verarbeitet wird, kann das tatsächlich für eine Abfrage zurückgegebene Resultset null oder mehr Zeilen enthalten. Zudem ist es möglich, dass die in der Abfrage definierten Spalten in der Datenquelle fehlen. NULL-Werte aus der Datenquelle werden dem .NET Framework-Wert System.DBNull.Value zugeordnet.
Festlegen von Dateneigenschaften
Wenn Sie ein Berichtsdataset definieren, können Sie Dateneigenschaften in der Abfrage festlegen oder die vom Datenprovider festgelegten Standardwerte annehmen. Sie können den Datentyp mithilfe einer der folgenden Vorgehensweisen ändern:
Schreiben Sie die Datasetabfrage um, sodass ein Feld ausdrücklich in einen anderen Datentyp konvertiert wird.
Bearbeiten Sie das Feld im Dataset, und stellen Sie ein benutzerdefiniertes Format bereit.
Erstellen Sie auf Grundlage eines Datenbankfelds ein neues benutzerdefiniertes Feld, und stellen Sie ein benutzerdefiniertes Format bereit.
Bei Datenquellen, die internationale Daten unterstützen, müssen Sie für Datasets möglicherweise die Eigenschaften anpassen, die sich auf die Sortierreihenfolge, die Eigenschaften internationaler Zeichen sowie darauf auswirken, ob Groß- und Kleinbuchstaben als gleich behandelt werden. Zu diesen Eigenschaften zählen Groß-/Kleinschreibung, Kanatyp, Breite, Akzent und Sortierung. Weitere Informationen finden Sie in "Internationale Überlegungen zu Datenbanken und Datenbankmodulanwendungen" und "Arbeiten mit Sortierungen" in der SQL Server-Onlinedokumentation. Weitere Informationen zum Festlegen dieser Eigenschaften finden Sie unter Dataseteigenschaften (Dialogfeld), Optionen (Berichts-Generator 2.0).
Grundlegendes zu Datentypen in einer Datasetfeldauflistung
Unter der Datenquelle werden die Daten als Datentypen gespeichert, die von der Datenquelle unterstützt werden. Bei Daten in einer SQL Server-Datenbank muss es sich zum Beispiel um einen der unterstützten SQL Server-Datentypen handeln, z. B. nvarchar oder datetime. Wenn Sie Daten aus einer Datenquelle abrufen, durchlaufen die Daten eine Datenverarbeitungserweiterung oder einen Datenanbieter, die bzw. der dem Datenquellentyp zugeordnet ist. Je nach Datenverarbeitungserweiterung können Daten aus den von der Datenquelle verwendeten Datentypen in von der Datenverarbeitungserweiterung unterstützte Datentypen konvertiert werden. Reporting Services verwendet Datentypen, die von der mit Business Intelligence Development Studio installierten CLR (Common Language Runtime) unterstützt werden. Der Datenanbieter ändert die Zuordnung der einzelnen Spalten des Resultsets vom systemeigenen Datentyp in einen CLR (Common Language Runtime)-Datentyp für .NET Framework.
In den einzelnen Phasen werden die Daten mithilfe der Datentypen dargestellt, die in der folgenden Liste beschrieben sind:
Datenquelle Die Datentypen, die von der Version des Datenquellentyps unterstützt werden, zu der Sie eine Verbindung herstellen.
Typische Datentypen für eine SQL Server-Datenquelle sind zum Beispiel int, datetime und varchar. Mit den von SQL Server 2008 eingeführten Datentypen wird die Unterstützung von date, time, datetimetz und datetime2 hinzugefügt. Weitere Informationen finden Sie unter Datentypen (Transact-SQL).
Datenanbieter oder Datenverarbeitungserweiterung Die Datentypen, die von der Version des Anbieters der Datenverarbeitungserweiterung unterstützt werden, die Sie beim Herstellen der Verbindung zur Datenquelle auswählen. Datenanbieter, die auf .NET Framework basieren, verwenden von der CLR unterstützte Datentypen. Weitere Informationen zu Datentypen des .NET Framework-Datenanbieters finden Sie auf der MSDN-Website unter Datentypzuordnungen (ADO.NET) und Arbeiten mit Basistypen.
Typische Datentypen, die von .NET Framework unterstützt werden, sind zum Beispiel Int32 und String. Datum und Uhrzeit für Kalender werden von der DateTime-Struktur unterstützt. Mit dem .NET Framework 2.0 Service Pack 1 wurde die Unterstützung der DateTimeOffset-Struktur für Daten mit einem Zeitzonenoffset eingeführt.
Hinweis Der Berichtsserver verwendet die Datenanbieter, die auf dem Berichtsserver installiert und konfiguriert wurden. Berichterstellungsclients im Vorschaumodus verwenden die installierten und konfigurierten Datenverarbeitungserweiterungen auf dem Clientcomputer. Sie müssen den Bericht sowohl in der Berichtsclient- als auch in der Berichtsserverumgebung testen.
Berichtsprozessor Die Datentypen basieren auf der Version der CLR, die bei der Installation von Reporting Services installiert wurde. SQL Server 2008Reporting Services installiert die CLR basierend auf .NET Framework 3.5.
Die Datentypen, die der Berichtsprozessor für die neuen Datum- und Uhrzeittypen verwendet, die mit SQL Server 2008 eingeführt werden, sind in der folgenden Tabelle aufgeführt:
SQL-Datentyp
CLR-Datentyp
Beschreibung
Date
DateTime
Nur Datum
Time
TimeSpan
Nur Uhrzeit
DateTimeTZ
DateTimeOffset
Datum und Uhrzeit mit Zeitzonenoffset
DateTime2
DateTime
Datum und Uhrzeit mit Bruchteilen von Millisekunden
Weitere Informationen über SQL Server-Datenbanktypen finden Sie unter Datentypen (Datenbankmodul) und Datums- und Uhrzeitdatentypen und zugehörige Funktionen (Transact-SQL).
Weitere Informationen zum Einschließen von Verweisen von einem Ausdruck auf ein Datasetfeld finden Sie unter Arbeiten mit Datentypen in Ausdrücken (Berichts-Generator 2.0).
Verwenden mehrerer Datasets
Ein Bericht enthält i. d. R. mehr als ein Dataset. In der folgenden Liste ist die Verwendung von Datasets in einem Bericht beschrieben:
Sie zeigen die Daten aus jedem Dataset mithilfe eines separaten Datenbereichs an. Weitere Informationen finden Sie unter Arbeiten mit Datenbereichen (Berichts-Generator 2.0).
Sie können mit einem Dataset mehr als einen Datenbereich verknüpfen und mehrere Sichten derselben Daten bereitzustellen. Weitere Informationen finden Sie unter Verknüpfen mehrerer Datenbereiche mit einem Dataset (Berichts-Generator 2.0).
Mithilfe von Datasets können Sie eine Dropdownliste verfügbarer Werte oder Standardwerte für einen Berichtsparameter bereitstellen. Weitere Informationen finden Sie unter Hinzufügen von Parametern zum Bericht (Berichts-Generator 2.0).
Mithilfe von Abfrageparametern und Drillthroughberichten oder Unterberichten können Sie aufeinander bezogene Daten in mehreren Datasets miteinander verknüpfen. Beispielsweise kann ein Verkaufsbericht Zusammenfassungsdaten für alle Filialen aufweisen, und ein Drillthroughlink kann die Geschäfts-ID als Parameter für einen Bericht mit einer Datasetabfrage angeben, mit der die einzelnen Verkäufe für den betreffende Filiale abgerufen werden. Weitere Informationen finden Sie unter Hinzufügen von Drillthroughberichten (Berichts-Generator 2.0) und Hinzufügen von Unterberichten (Berichts-Generator 2.0).
Detaildaten aus mehreren Datasets in einem einzelnen Datenbereich können nicht angezeigt werden. Jedoch können Sie für mehrere Datasets innerhalb eines Datenbereichs Werte von Aggregat- oder integrierten Funktionen anzeigen. Weitere Informationen finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Berichts-Generator 2.0). Wenn Sie Detaildaten aus mehreren Datasets zu einem Datenbereich kombinieren müssen, muss die Abfrage so umgeschrieben werden, dass die Daten als einzelnes Dataset abgerufen werden.
Importieren vorhandener Abfragen für ein Dataset
Wenn Sie ein Dataset erstellen, können Sie eine neue Abfrage erstellen oder eine vorhandene Abfrage aus einer Datei oder aus einem anderen Bericht importieren. Nur die Dateitypen SQL und RDL werden unterstützt. MDX (Multidimensional Expression)-Abfragen oder DMX (Data Mining Prediction)-Abfragen können nur mit einem Reporting Services-Abfrage-Designer generiert werden, da ein Resultset als vereinfachtes Rowset abgerufen werden muss.
Wenn Sie eine Abfrage aus einem anderen Bericht importieren, können Sie die zu importierende Abfrage in der Liste der Datasets im Bericht auswählen.
Anzeigen einer Meldung, wenn zur Laufzeit kein Datenzeilen abgerufen werden
Wenn während der Berichtsverarbeitung die Abfrage für ein Dataset ausgeführt wird, enthält das Resultset möglicherweise keine Zeilen. Im gerenderten Bericht wird ein mit einem leeren Dataset verknüpfter Datenbereich als leerer Datenbereich angezeigt. Sie können Text angeben, der im gerenderten Bericht anstelle des leeren Datenbereichs angezeigt werden soll. Wenn die Abfragen für sämtliche Datasets zur Laufzeit keine Daten zurückgeben, können Sie auch eine Meldung für Unterberichte festlegen. Weitere Informationen finden Sie unter Vorgehensweise: Festlegen einer Meldung über fehlende Daten für einen Datenbereich (Berichts-Generator 2.0).
Erkennen von fehlenden Feldern
Wenn der Bericht verarbeitet wird, sind im Resultset für ein Dataset möglicherweise nicht für angegebenen Spalten Werte enthalten, da die Spalten in der Datenquelle nicht mehr vorhanden sind. Über die Feldeigenschaft IsMissing können Sie ermitteln, ob zur Laufzeit Werte für ein Feld zurückgegeben wurden. Weitere Informationen finden Sie unter Verwenden von Verweisen auf Datasetfeldauflistungen in Ausdrücken (Berichts-Generator 2.0).
Anzeigen ausgeblendeter Datasets
Wenn Sie für einige mehrdimensionale Datenquellen eine parametrisierte Abfrage erstellen, erstellt Reporting Services automatisch Datasets, um gültige Werte für den Parameter bereitzustellen. Standardmäßig werden diese Datasets nicht im Bereich Berichtsdaten angezeigt. Weitere Informationen finden Sie unter Vorgehensweise: Anzeigen von ausgeblendeten Datasets (Berichts-Generator 2.0).
Siehe auch