Verwenden des URL-Zugriffs in einer Windows-Anwendung

Obwohl der URL-Zugriff auf einen Berichtsserver für eine Webumgebung optimiert ist, können Sie mit dem URL-Zugriff auch Reporting Services-Berichte in eine Microsoft Windows-Anwendung integrieren. Aber der URL-Zugriff, der auch Windows Forms umfasst, erfordert trotzdem die Verwendung der Webbrowsertechnologie. Sie können folgende Integrationsszenarien mit dem URL-Zugriff und Windows Forms verwenden:

  • Zeigen Sie einen Bericht in einer Windows Forms-Anwendung an, indem Sie einen Webbrowser programmgesteuert starten.

  • Verwenden Sie das WebBrowser-Steuerelement auf einer Windows Form, um einen Bericht anzuzeigen.

Starten von Internet Explorer von einer Windows Form

Sie können über die Process-Klasse auf einen Prozess zugreifen, der auf einem Computer ausgeführt wird. Die Process-Klasse ist ein nützliches Microsoft .NET Framework-Konstrukt zum Starten, Anhalten, Steuern und Überwachen von Anwendungen. Um einen bestimmten Bericht in der Berichtsserver-Datenbank anzuzeigen, können Sie den Prozess IExplore starten, indem Sie die URL an den Bericht übergeben. Folgendes Codebeispiel kann verwendet werden, um Microsoft Internet Explorer zu starten und eine spezielle URL zu übergeben, wenn ein Benutzer auf eine Schaltfläche in einer Windows Form klickt.

Private Sub viewReportButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles viewReportButton.Click
   ' Build the URL access string based on values supplied by a user
   Dim url As String = serverUrlTextBox.Text + "?" & reportPathTextBox.Text & _
   "&rs:Command=Render" & "&rs:Format=HTML4.0"

   ' If the user does not select the toolbar check box,
   ' turn the toolbar off in the HTML Viewer
   If toolbarCheckBox.Checked = False Then
      url += "&rc:Toolbar=False"
   End If
   ' load report in the Web browser
   Try
      System.Diagnostics.Process.Start("IExplore", url)
   Catch
      MessageBox.Show("The system could not start the specified report using Internet Explorer.", _
      "An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error)
   End Try
End Sub 'viewReportButton_Click
// Sample click event for a Button control on a Windows Form
private void viewReportButton_Click(object sender, System.EventArgs e)
{
   // Build the URL access string based on values supplied by a user
   string url = serverUrlTextBox.Text + "?" + reportPathTextBox.Text +
      "&rs:Command=Render" + "&rs:Format=HTML4.0";

   // If the user does not check the toolbar check box,
   // turn the toolbar off in the HTML Viewer
   if (toolbarCheckBox.Checked == false)
      url += "&rc:Toolbar=False";

   // load report in the Web browser
   try
   {
      System.Diagnostics.Process.Start("IExplore", url);
   }

   catch (Exception)
   {
      MessageBox.Show(
         "The system could not open the specified report using Internet Explorer.", 
         "An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }
}

Integrieren eines Browsersteuerelements auf einer Windows Form

Wenn Sie den Bericht nicht in einem externen Webbrowser anzeigen möchten, können Sie einen Webbrowser nahtlos als Teil der Windows Form integrieren, indem Sie das WebBrowser-Steuerelement verwenden.

So fügen Sie der Windows Form das Webbrowser-Steuerelement hinzu

  1. Erstellen Sie entweder in Microsoft Visual C# oder in Microsoft Visual Basic eine neue Windows-Anwendung.

  2. Suchen Sie das WebBrowser-Steuerelement im Dialogfeld Toolbox.

    Wenn Toolbox nicht sichtbar ist, können Sie darauf zugreifen, indem Sie im Menü Ansicht die Option Toolbox auswählen.

  3. Ziehen Sie das WebBrowser-Steuerelement auf die Entwurfsoberfläche der Windows Form.

    Das als webBrowser1 bezeichnete WebBrowser-Steuerelement wird zum Formular hinzugefügt.

Sie leiten das WebBrowser-Steuerelement an eine URL weiter, indem Sie seine Navigate-Methode aufrufen. Sie können dem WebBrowser-Steuerelement zur Laufzeit eine bestimmte URL-Zugriffszeichenfolge zuordnen, wie in folgendem Beispiel gezeigt.

Dim url As String = "https://localhost/reportserver?/" & _
                    "AdventureWorks2012 Sample Reports/" & _
                    "Company Sales&rs:Command=Render"
WebBrowser1.Navigate(url)
string url = "https://localhost/reportserver?/" +
             "AdventureWorks2012 Sample Reports/" +
             "Company Sales&rs:Command=Render";
webBrowser1.Navigate(url);

Siehe auch

Konzepte

Integration von Reporting Services in Anwendungen

Integrieren von Reporting Services mit den ReportViewer-Steuerelementen

URL-Zugriff (SSRS)

Andere Ressourcen

Integrieren von Reporting Services mit URL-Zugriff

Integrieren von Reporting Services mit SOAP