Freigeben über


Erstellen von Datenquellen für einen Bericht

Der Verarbeitungsmodus eines ReportViewer-Steuerelements legt die Art der Daten fest, die Sie als Grundlage eines Berichts verwenden können.

Im Remoteverarbeitungsmodus, in dem Berichte auf einem SQL Server 2005-Berichtsserver verarbeitet werden, legen Datenverarbeitungserweiterungen auf dem Berichtsserver die Datenquellentypen fest, die Sie verwenden können. Standardmäßige Datenverarbeitungserweiterungen sind verfügbar für SQL Server, Analysis Services, SQL Server Integration Services, Oracle, SAP NetWeaver® Business Intelligence, XML, ODBC und OLE DB. Verbindungen zu Datenquellen und Abfragen, die Daten für einen Bericht abrufen, werden zur Entwurfszeit in einer Berichtsdefinition festgelegt, wenn Sie einen Bericht in Business Intelligence Development Studio erstellen (Dies ist das Berichtsdesigntool in SQL Server 2005). Felder, die von der Abfrage zurückgegeben werden, können im Berichtslayout verwendet werden, wenn Sie diese auf die Berichtsentwurfsoberfläche ziehen. Weitere Informationen zur Verwendung von Daten in einem Serverbericht finden Sie in der SQL Server 2005-Onlinedokumentation unter Herstellen einer Verbindung mit einer Datenquelle (Reporting Services).

Im lokalen Verarbeitungsmodus, in dem Berichte vom Steuerelement innerhalb der Anwendung verarbeitet werden, können Sie Visual Studio-Datenquellen und -Datenfelder festlegen, um die Daten als Grundlage für den Bericht zu definieren. Verbindungen zur Datenquelle und Abfragen, die Daten für einen Bericht abrufen, werden zur Entwurfszeit im Anwendungsprojekt definiert. In einem Clientbericht können Daten aus jeder beliebigen Quelle verwendet werden, sofern sie als ADO.NET-DataTable-Objekt oder als aufzählbare Auflistung von Geschäftsobjekten bereitgestellt werden kann. Die Datentabelle oder das Geschäftsobjekt geben eine Liste der Felder zurück, die vom Bericht verwendet werden können. Felder enthalten einen Zeiger auf ein Datenbankfeld und eine Nameneigenschaft. Sie können Felder auf ein Berichtslayout im Fenster Datenquelle ziehen.

Binden von Daten in einem Bericht

In Berichtsdefinitionen werden Datenbereiche verwendet, um Daten an den Bericht zu binden. Sie können aus einer Vielzahl von Datenbereichen wählen, um unterschiedliche Datenstrukturen im Bericht zu unterstützen. Beispiele für Datenbereiche, die Sie in Berichtsdefinitionen verwenden können, sind u. a. Tabelle, Matrix, Diagramm und Liste. Um Daten in einem Bericht zu binden, müssen Sie wie folgt vorgehen:

  • Definieren Sie Datenquellen und Datasets, die Sie im Bericht verwenden möchten. (Die entsprechende Vorgehensweise erfahren Sie in den Informationen und Links in diesem Thema.) Im Fenster Datenquelle werden die Datenquellen und Felder angezeigt, die Sie verwenden können.

  • Ziehen Sie die Datenbereiche, die Sie aus der Berichtstoolbox verwenden möchten, auf die Entwurfsoberfläche.

  • Ziehen Sie einzelne Felder aus dem Fenster Datenquelle auf den Datenbereich.

    Jeder Datenbereich kann Felder aus einem einzelnen Dataset verwenden. Weder das ReportViewer-Steuerelement noch der Berichtsserver können Verknüpfungen zwischen unterschiedlichen Datasets ausführen. Wenn Sie z. B. Geschäftsobjekte verwenden, muss die Verknüpfung innerhalb des Geschäftsobjekts ausgeführt werden. Weitere Informationen zu Datenbereichen finden Sie unter Hinzufügen von Datenbereichen zu einem Bericht (Visual Studio-Berichts-Designer).

Hinzufügen von Datenquellen zu ReportViewer-Berichten

Beim Einrichten einer Datenquelle empfehlen sich die folgenden Vorgehensweisen, damit die Datenquelle in einer Clientberichtsdefinition verwendet werden kann.

  • Fügen Sie dem Anwendungsprojekt eine Datenquelle hinzu, und konfigurieren Sie die Datenverbindung mit den zugrunde liegenden Daten. Wählen Sie als zugrunde liegenden Datenspeicher die Daten aus, die Sie verwenden möchten. Die Daten, die Sie im Bericht verwenden möchten, müssen im Fenster Datenquellen verfügbar sein. Bei einer Datentabelle zeigt die Datenquelle Spaltennamen an, die von einer Abfrage zurückgegeben wurden. Bei einer aufzählbaren Auflistung von Geschäftsobjekten zeigt die Datenquelle eine Liste öffentlicher Eigenschaften mit einfachen Datentypen an, die vom Klassenobjekt verfügbar gemacht werden.

  • Um eine Datentabelle zu erstellen, fügen Sie dem Projekt ein Dataset hinzu und verwenden dann den TableAdapter-Konfigurations-Assistenten, um die Datentabelle zu konfigurieren. Der TableAdapter-Konfigurations-Assistent stellt einen Abfrage-Generator und ein Feature zur Datenvorschau zur Verfügung, sodass Sie Abfrageergebnisse sofort überprüfen können.

  • Zum Erstellen von Geschäftsobjekten verwenden Sie den Befehl Neues Element hinzufügen im Menü Projekt und wählen das Klassenobjekt aus. Geben Sie Implementierungen an, die öffentliche Eigenschaften mit einfachen Datentypen verfügbar machen, die zur Entwurfszeit verwendet werden. Geben Sie Methoden an, um aufzählbare Auflistungen der Eigenschaften zurückzugeben, die zur Laufzeit verwendet werden.

Nachdem eine Datenquelle konfiguriert wurde, werden die bindbaren Daten in der Hierarchie des Fensters Datenquelle angezeigt. Um Daten an einen Bericht zu binden, ziehen Sie die Knoten der erweiterten Hierarchie in Textfelder oder Datenbereiche eines Berichtslayouts. Wenn Sie die Datasets ändern, nachdem der Bericht definiert wurde, müssen Sie die Datenbindungen im Bericht und im Steuerelement aktualisieren. Weitere Informationen finden Sie unter Aktualisieren und erneutes Binden von Datenquellenverweisen (Visual Studio-Berichts-Designer).

Sie können eine beliebige Anzahl von Datenquellen in einem Projekt verwenden. Zum Anzeigen der Liste der Datenquellen, die tatsächlich von einem Bericht verwendet werden, wählen Sie im Menü Bericht den Befehl Datenquellen aus. Um eine Vorschau des Berichts und der enthaltenen Daten in der Anwendung anzuzeigen, müssen Sie einen Build der Anwendung erstellen oder die Anwendung bereitstellen, um zu überprüfen, ob der Bericht die erwarteten Daten enthält. Weitere Informationen zum Konfigurieren des Steuerelements und zum Definieren des Berichtslayouts finden Sie unter Konfigurieren von ReportViewer für die lokale Verarbeitung und Erstellen von Client-Berichtsdefinitionsdateien (RDLC).

Die folgenden Anleitungen, die zeigen, wie die verschiedenen Datenquellentypen einem Projekt hinzugefügt werden, sollen Ihnen einen schnellen Einstieg ermöglichen.

Verwenden von Geschäftsobjekten

Als Geschäftsobjekt wird jedes Anwendungsobjekt bezeichnet, das öffentliche Eigenschaften mit einfachen Datentypen verfügbar macht. Beispiele für Geschäftsobjekte sind eine Auflistung aus Customer-Objekten aus einem zugrunde liegenden Datenspeicher, ein Array mit BookTitle-Objekten, das von der Anwendung erstellt wird, oder eine Liste mit Channel-Objekten, die Sie auf der Grundlage einer RSS XML-Quelle erstellen.

Damit sie als Datenquelle zugänglich ist, muss die Auflistung IEnumerable unterstützen. Bindbare Daten werden in einer hierarchischen Ansicht im Fenster Datenquellen angezeigt. Bei Geschäftsobjekten zeigt die Datenquelle eine Liste öffentlicher Eigenschaften mit einfachen Datentypen an, die von dem Klassenobjekt verfügbar gemacht werden. Sie können sie anschließend an die Datenbereiche und Textfelder in einer Berichtsdefinition binden.

Um eine Auflistung aus Geschäftsobjekten bereitzustellen, können Sie dem Projekt ein Klasse oder einen Verweis auf die Assembly für eine Klasse hinzufügen.

Verwenden von Datentabellen

Ein DataTable-Objekt ist Teil eines ADO.NET-DataSet-Objekts und kann problemlos einem Projekt hinzugefügt werden. Wählen Sie einfach im Menü Projekt den Befehl Neues Element hinzufügen aus. Starten Sie den TableAdapter-Konfigurations-Assistenten, um die Datenverbindung zu konfigurieren. Wählen Sie im Menü Daten den Befehl Hinzufügen aus, und wählen Sie dann TableAdapter aus. Sie können auch eine Abfrage definieren, um das Resultset zu begrenzen. Sobald die Ausführung des Assistenten beendet ist, ist der Zugriff auf die Spalten im DataTable-Objekt über das Fenster Datenquellen möglich, sodass Sie die Spalten an Datenbereiche und Textfelder in einer Clientberichtsdefinition binden können.

Definieren von Datenquellen für ReportViewer-Webserver-Steuerelemente

Datenquellensteuerelemente unterstützen die Abstraktion der Datenzugriffsschicht, sodass Steuerelemente auf einer Webseite eine Bindung zu einer Datenquelle herstellen, die ihrerseits eine Bindung zu den eigentlichen Daten herstellt. Auf diese Weise können Sie die Datenquelle effizient ändern, ohne alle Bindungen zwischen den einzelnen Steuerelementen und den Datenelementen erneut herstellen zu müssen.

Wenn Sie eine Webseite entwerfen, werden im Abschnitt Data der Toolbox mehrere Datenquellensteuerelemente aufgelistet, z. B. SqlDataSource und XmlDataSource. Einige Datenquellensteuerelemente unterstützen die seitenbezogene Verwendung von Arbeitsspeicher für Webseiten, andere verwenden freigegebene Daten. Berichte verwenden keinen seitenbezogenen Arbeitsspeicher; für ein ReportViewer-Webserver-Steuerelement empfiehlt sich daher die Verwendung des ObjectDataSource-Steuerelements. Dieses Steuerelement stellt eine Brücke zwischen im Arbeitsspeicher zwischengespeicherten Objekten (DataTable-Objekte oder Geschäftsobjektauflistungen) und den Berichtsdatenbereichen dar. Wenn Sie ein ReportViewer-Steuerelement zu einer Webseite hinzufügen, wird automatisch ein ObjectDataSource-Steuerelement hinzugefügt und konfiguriert.

Um die Notwendigkeit für das Schreiben zusätzlichen Codes zu minimieren, bietet die ASP.NET-Unterstützung für Webseiten eine zusätzliche Verarbeitung im Hintergrund, durch die Auflistungen erkannt werden, die bindbare Geschäftsobjekte bereitstellen. Wenn Sie dem Projekt eine Klasse hinzufügen, die eine Auflistung aus Objekten zurückgibt, die als Geschäftsobjekt identifiziert werden können, wird die Auflistung automatisch zum Fenster Website-Datenquellen hinzugefügt.

Siehe auch

Verweis

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

Konzepte

Konfigurieren von ReportViewer für die Remoteverarbeitung
Aktualisieren und erneutes Binden von Datenquellenverweisen (Visual Studio-Berichts-Designer)

Weitere Ressourcen

Übersicht über TableAdapters
Beispiele und Anleitungen