Freigeben über


Verwenden der SOAP-API in einer 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 Features 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. Mit Microsoft.NET Framework können Sie eine Proxyklasse generieren, die die Eigenschaften und Methoden des Webdiensts verfügbar macht und es Ihnen ermöglicht, bei der Erstellung von Geschäftsanwendungen auf Basis von Reporting Services-Technologie eine vertraute Infrastruktur und vertraute Tools zu verwenden.

Integrieren der Berichtsverwaltungsfunktionalität mit 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. Zu diesem Zweck haben Sie die Möglichkeit, mit der ListChildren-Methode des Webdiensts alle Elemente in der Berichtsserver-Datenbank aufzulisten und anschließend das Steuerelement Listview, Treeview oder Combobox zu verwenden, um diese Elemente für die Benutzer anzuzeigen. Den folgenden Webdienstcode können Sie verwenden, um die aktuelle Liste der verfügbaren Berichte im Ordner Meine Berichte abzurufen, wenn ein Benutzer auf eine Schaltfläche in einem Formular klickt:

' 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 ReportingService2005()
   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.Type = ItemTypeEnum.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
   ReportingService2005 rs = new ReportingService2005();
   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.Type == ItemTypeEnum.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 Anzeige von Berichten und der Berichtsnavigation 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 nicht nutzen, die über URL-Zugriff im HTML-Viewer verfügbar ist.

  • Wenn Sie in das HTML-Format rendern, müssen Sie mit der RenderStream-Methode alle Bilder oder Ressourcen separat als zusätzliche Streams rendern.

  • Wenn Sie den URL-Zugriff verwenden, gibt es beim Rendern von Berichten einen leichten Leistungsvorteil im Vergleich zur 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. Dies ist ein Vorteil gegenüber dem URL-Zugriff, der eine Benutzereingabe 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 ReportViewer-Steuerelemente verwenden, die im Lieferumfang von MicrosoftVisual Studio 2005 enthalten sind. Durch die ReportViewer-Steuerelemente kann Reporting Services-Funktionalität problemlos in benutzerdefinierte Anwendungen eingebettet werden. Die ReportViewer-Steuerelemente wurden für Entwickler konzipiert, die vorbereitete, vollständig erstellte Berichte als Bestandteil einer Anwendungsfeaturegruppe bereitstellen möchten, z. B. für eine Anwendung zur Websiteverwaltung mit Berichten, die Analysen von Klickströmen für Unternehmenswebsites enthalten. Das Einbetten der Steuerelemente in eine Anwendung stellt eine optimierte Alternative zum Aufnehmen der Reporting Services-Serverkomponenten in der Anwendungsbereitstellung dar. Die Steuerelemente stellen Berichtsfunktionalität bereit, jedoch ohne die in Reporting Services vorhandene zusätzliche Unterstützung für das Erstellen, Veröffentlichen, Verteilen und Übermitteln von Berichten.

Es gibt zwei Versionen von ReportViewer-Steuerelementen: eine für umfassende Windows-Clientanwendungen 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.

ReportViewer-Steuerelemente sind in der Onlinehilfe zu Visual Studio 2005 dokumentiert. Weitere Informationen finden Sie in der Produktdokumentation zu Visual Studio 2005.