Wie werden Report Viewer-Steuerelemente verwendet?

Report Viewer-Steuerelemente sind .NET-Steuerelemente, die einem Formular in einer Windows- oder Webanwendung hinzugefügt werden können, um Berichte in diesem Formular anzeigen zu lassen.

Wenn Sie planen, eine Anwendung mit dem Crystal Reports-SDK zu erstellen, wird eine Ihrer wichtigsten Überlegungen darin bestehen, wie die Report Viewer-Steuerelemente eingesetzt werden sollen. Indem Sie die SDK-Grundlagen kennen lernen, die diese Steuerelemente beeinflussen, können Sie leicht die optimale Struktur für Ihr Crystal Reports für Visual Studio-Projekt ermitteln.

Was sind .NET-Steuerelemente?

Microsoft .NET-Steuerelemente stellen einen bestimmten Klassentyp dar und werden in der Toolbox von Visual Studio angezeigt. Sie werden Web Forms oder Windows Forms als GUI-Objekte hinzugefügt und erben von einer gemeinsamen Steuerelementbasisklasse. Typische .NET-Steuerelemente sind: Button, DropDownList, CheckBox, TextBox oder DataGrid.

Microsoft .NET-Steuerelemente entsprechen der folgenden bewährten Methode: Trennung von Darstellungs- und Geschäftslogikschicht. Anzeigeinformationen sind im Web Form oder Windows Form im Steuerelement eingekapselt. In der CodeBehind-Klasse wird das .NET-Steuerelement als Instanz auf Klassenebene instantiiert. Diese Instanzvariable gewährt Zugriff auf die Eigenschaften, Methoden und Ereignisse des Steuerelements.

Microsoft .NET-Steuerelemente sind funktionell für Windows Forms und Web Forms identisch. Ähnlich wie in einer Windows-Anwendung betrachtet .NET Framework jede Webseite als ein Formular, das Steuerelemente enthält.

Warum verwendet Crystal Reports .NET-Steuerelemente für die Berichtsanzeige?

Eine der Stärken von Berichterstellungstools liegt darin, dass komplexe Informationen in Zusammenhang mit Struktur, Entwurf und Rendering von Berichten in einem einfachen GUI-Tool eingekapselt werden. Entsprechend werden komplexe Informationen für die Anzeige und Datenauffüllung von .NET-Steuerelementen in einem einfachen GUI-Objekt in einem Web Form oder Windows Form eingekapselt.

Bei Verwendung von .NET-Steuerelementen wird die Erstellung komplexer Berichte und deren Anzeige zusammen behandelt. Alle komplexen Berichtinformationen, die früher nur in der eigenständigen Crystal Reports-Anwendung eingekapselt wurden, werden jetzt als Report Viewer innerhalb eines .NET-Steuerelements eingekapselt.

Wie viele Report Viewer-Steuerelemente sind verfügbar?

Crystal Reports für Visual Studio wird mit zwei Versionen des CrystalReportViewer-Steuerelements ausgeliefert: eine für Webanwendungen und eine für Windows-Anwendungen. Das CrystalReportViewer-Steuerelement im CrystalDecisions.Web-Namespace wird von ASP.NET-Webprojekten verwendet. Das CrystalReportViewer-Steuerelement im CrystalDecisions.Windows.Forms-Namespace wird von Windows-Projekten verwendet.

NoteAnmerkung

Im Hinblick auf das CrystalReportViewer-Steuerelement weist Crystal Reports für Visual Studio eine Reihe bedeutender Verbesserungen auf. Weitere Informationen finden Sie unter Das CrystalReportViewer-Steuerelement.

Das CrystalReportPartsViewer-Steuerelement wird nur zur Anzeige von Berichtbestandteilen in einer Webseite verwendet. Um mehr über die Verwendung des Steuerelements für Berichtbestandteile zu erfahren, informieren Sie sich unter Lernprogramm: Anzeigen von Berichtbestandteilen mit dem CrystalReportPartsViewer-Steuerelement.

Anzeigen eines Berichts mit Hilfe des CrystalReportViewer-Steuerelements

Vom CrystalReportViewer-Steuerelement wird jeweils nur ein Bericht angezeigt. Welcher Bericht vom Steuerelement angezeigt wird, hängt von dem Bericht ab, den Sie an den Code binden. Um dem Steuerelement mitzuteilen, welcher Bericht angezeigt werden soll, binden Sie die ReportSource-Eigenschaft des Steuerelements an einen bestimmten Bericht. Zur Laufzeit lädt das Steuerelement den an die ReportSource-Eigenschaft gebundenen Bericht und zeigt ihn an.

Die Zuweisung sieht in ihrer einfachsten Form wie folgt aus:

crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt"
crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";

In diesem Fall wird der Bericht direkt über seinen Pfad im Dateiverzeichnis an das Steuerelement gebunden.

Dies ist der einfachste Weg, um einen Bericht an das CrystalReportViewer-Steuerelement zu binden. Eine vollständige Liste der Bindungsszenarien finden Sie unter Welches Berichtbindungsszenario sollte verwendet werden?

Wird das CrystalReportViewer-Steuerelement an Datenobjekte gebunden?

Nein. Das CrystalReportViewer-Steuerelement wird an ein Berichtobjekt und nicht an ein Datenobjekt gebunden.

Dies liegt in der unterschiedlichen Zweckausrichtung des CrystalReportViewer-Steuerelements gegenüber anderen .NET-Steuerelementen begründet. Andere .NET-Steuerelemente werden an Daten gebunden und zur Formatierung unformatierter Daten auf der Seite verwendet. Da der eingebettete Crystal Report Designer diese Aufgabe automatisch bei der Berichterstellung ausführt (Datenabruf und Anzeige sind per Definition in einem Bericht eingekapselt), ist das CrystalReportViewer-Steuerelement nur für die Anzeige eines Berichtobjekts zuständig.

In der folgenden Tabelle wird die Bindung an ein .NET-Datensteuerelement mit der Bindung an ein CrystalReportViewer-Steuerelement verglichen.

Steuerelementtyp
Bindung an
Konnektivität zur nächsten Ebene
.NET-Datensteuerelement (z. B. DataGrid-Steuerelement)
Ein Datenobjekt (DataSet, DataReader, DataView, IDictionary, ICollection, DataTable)
Keine
.NET Report Viewer-Steuerelement (z. B. CrystalReportViewer-Steuerelement)
Ein Berichtobjekt (in das eine Crystal Reports-Berichtsdatei eingekapselt ist)
Die Crystal Reports-Berichtsdatei verfügt über integrierte Datenkonnektivität, die die Verbindung mit verschiedenen Datenquellen wie ODBC und OleDb herstellt, sowie über DataReader- und DataSet-Objekte.

Damit Sie nicht vergessen, dass ein CrystalReportViewer-Steuerelement an ein Berichtobjekt und nicht an ein Datenobjekt gebunden wird, wird die Quelleigenschaft des Report Viewer-Steuerelements mit ReportSource (und nicht mit DataSource) bezeichnet.

Automatische Berichtbindung

Ein weiterer Unterschied beim Binden eines CrystalReportViewer-Steuerelements liegt darin, dass anders als bei den meisten anderen .NET-Steuerelementen keine Bindungsmethode manuell aufgerufen werden muss. Stattdessen bindet das Steuerelement den Report Viewer automatisch an das Berichtobjekt. Weitere Informationen zur Berichtbindung finden Sie unter Welches Berichtbindungsszenario sollte verwendet werden?

In diesem Abschnitt