Integrieren von Reporting Services mithilfe von SOAP – Windows-Anwendung
Über die Reporting Services-SOAP-API können Sie auf alle Funktionen des Berichtsservers zugreifen. Bei der SOAP-API handelt es sich um einen Webdienst, auf den problemlos zugegriffen werden kann, um Funktionen zur Unternehmensberichterstellung für benutzerdefinierte Geschäftsanwendungen bereitzustellen. Sie können in einer Windows-Anwendung auf den Webdienst zugreifen, indem Sie einfach Code schreiben, mit dem der Dienst aufgerufen wird. Mithilfe von Microsoft .NET Framework können Sie eine Proxyklasse generieren, die die Eigenschaften und Methoden des Webdiensts verfügbar macht. Anschließend können Sie eine vertraute Infrastruktur und Tools verwenden, um Geschäftsanwendungen zu erstellen, die auf reporting Services-Technologie basieren.
Integrieren von Berichtsverwaltungsfunktionen mithilfe von Windows Forms
Anders als beim URL-Zugriff macht die SOAP-API sämtliche Verwaltungsfunktionen verfügbar, die über den Berichtsserver zur Verfügung stehen. Dies bedeutet, dass Entwicklern über SOAP sämtliche Administratorfunktionen des Berichts-Managers zur Verfügung stehen. Mit Windows Forms können Sie also ein vollständiges Management- und Verwaltungstool entwickeln. Sie können beispielsweise Benutzern in der Windows-Anwendung ermöglichen, den Inhalt des Berichtsserver-Namespace abzurufen. Mit der Webdienstmethode ListChildren können Sie alle Elemente in der Berichtsserverdatenbank auflisten und dann ein Listview-, Treeview- oder Combobox-Steuerelement verwenden, um diese Elemente ihren Benutzern anzuzeigen. Der folgende Webdienstcode kann verwendet werden, um die aktuelle Liste der verfügbaren Berichte im Ordner "Meine Berichte" eines Benutzers abzurufen, wenn ein Benutzer eine Schaltfläche in einem Formular auswählt:
' Button click event that retrieves a list of reports from
' the My Reports folder and displays them in a combo box
Private Sub listReportsButton_Click(sender As Object, e As System.EventArgs)
' Create a new Web service object and set credentials
' to Windows Authentication
Dim rs As New ReportingService2010()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
' Return the list of items in My Reports
Dim items As CatalogItem() = rs.ListChildren("/Adventureworks Sample Reports", False)
Dim ci As CatalogItem
For Each ci In items
' If the item is a report, add it to
' a combo box
If ci.TypeName = "Report" Then
catalogComboBox.Items.Add(ci.Name)
End If
Next ci
End Sub 'listReportsButton_Click
// Button click event that retrieves a list of reports from
// the My Reports folder and displays them in a combo box
private void listReportsButton_Click(object sender, System.EventArgs e)
{
// Create a new Web service object and set credentials
// to Windows Authentication
ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Return the list of items in My Reports
CatalogItem[] items = rs.ListChildren("/Adventureworks Sample Reports", false);
foreach (CatalogItem ci in items)
{
// If the item is a report, add it to
// a combo box
if (ci.TypeName == "Report")
catalogComboBox.Items.Add(ci.Name);
}
}
Von dort aus können Sie es Benutzern ermöglichen, den Bericht im Kombinationsfeld auszuwählen und dann mithilfe eines Webbrowser-Steuerelements oder eines Bildsteuerelements eine Vorschau des Berichts im Formular anzuzeigen.
Aktivieren der Berichtsanzeige und -navigation mit Windows Forms
Es gibt zwei Methoden zum Integrieren von Berichten in Windows Forms-Anwendungen.
Sie können die SOAP-API verwenden, um Berichte mithilfe der Render-Methode in jedes der unterstützten Renderingformate zu rendern. Die Verwendung dieser Methode bringt im Vergleich zur Aktivierung der Anzeige von Berichten und der Berichtsnavigation durch SOAP kleine Nachteile mit sich:
Sie können die integrierte Funktionalität der Berichtssymbolleiste, die im HTML-Viewer enthalten ist, nicht über DEN URL-Zugriff nutzen.
Wenn Sie in das HTML-Format rendern, müssen Sie mit der RenderStream-Methode alle Bilder oder Ressourcen separat als zusätzliche Datenströme rendern.
Es gibt einen leichten Leistungsvorteil beim Rendern von Berichten mithilfe des URL-Zugriffs über die SOAP-API.
Sie können die Render-Methode der SOAP-API jedoch verwenden, um Berichte zu rendern und sie programmgesteuert in verschiedenen Ausgabeformaten zu speichern. Diese Methode ist ein Vorteil gegenüber dem URL-Zugriff, der eine Benutzerinteraktion erfordert. Wenn Sie mit der SOAP-API-Render-Methode einen Bericht rendern, können Sie in jedes der unterstützten Ausgabeformate rendern.
Sie können auch die frei verteilbaren Report Viewer-Steuerelemente verwenden, die im Lieferumfang von Microsoft Visual Studio 2008 enthalten sind. Mit den Report Viewer-Steuerelementen können Sie Reporting Services-Funktionen ganz einfach in benutzerdefinierte Anwendungen einbetten. Die Berichtsanzeige-Steuerelemente sind für Entwickler vorgesehen, die vordefinierte, vollständig erstellte Berichte als Teil eines Anwendungsfeaturesatzes bereitstellen möchten. Beispielsweise kann eine Websiteverwaltungsanwendung Berichte enthalten, die Klickstreamanalyse auf Unternehmenswebsites anzeigen. Das Einbetten der Steuerelemente in eine Anwendung bietet eine rationelle Alternative zur Einbindung der Reporting Services-Serverkomponenten in Ihre Anwendungsbereitstellung. Die Steuerelemente bieten Berichtsfunktionen, aber ohne zusätzliche Berichtserstellung, Publikation oder Verteilungs- und Übermittlungsunterstützung, die Sie in Reporting Services finden.
Es gibt zwei Versionen der Report Viewer-Steuerelemente, eine für Rich Windows Client-Anwendungen und eine für ASP.NET-Anwendungen. Die Steuerelemente unterstützen sowohl den lokalen Verarbeitungsmodus als auch den Remoteverarbeitungsmodus. Beim lokalen Verarbeitungsmodus stellt die Anwendung die Berichtsdefinition und -Datasets bereit und löst die Berichtsverarbeitung aus. Beim Remoteverarbeitungsmodus finden Datenabruf und Berichtsverarbeitung auf dem Berichtsserver statt, und die Steuerung wird für die Anzeige und für die Berichtsnavigation verwendet. Mit diesem Modell können Sie anspruchsvolle Anwendungen erstellen, die vom Desktop auf das Unternehmen zugeschnitten werden können.
Die Steuerelemente von Report Viewer sind in der Online-Hilfe von Visual Studio dokumentiert. Weitere Informationen finden Sie in der Visual Studio Produktdokumentation.