Integreer Reporting Services door gebruik te maken van URL-toegang - Windows-applicatie

Hoewel URL-toegang tot een rapportserver geoptimaliseerd is voor een webomgeving, kun je ook URL-toegang gebruiken om Reporting Services rapporten in een Microsoft Windows applicatie in te sluiten. Echter, URL-toegang die Windows Forms betreft vereist nog steeds dat je webbrowsertechnologie gebruikt. Je kunt de volgende integratiescenario's gebruiken met URL-toegang en Windows Forms:

  • Toon een rapport van een Windows Form-applicatie door programmatisch een webbrowser te starten.

  • Gebruik de WebBrowser bediening op een Windows-formulier om een rapport weer te geven.

Start Internet Explorer vanaf een Windows-formulier

Je kunt de Process klasse gebruiken om toegang te krijgen tot een proces dat op een computer draait. De Process klasse is een nuttige Microsoft .NET Framework-constructie voor het starten, stoppen, beheren en monitoren van applicaties. Om een specifiek rapport in je rapportserverdatabase te bekijken, kun je het IExplore-proces starten en de URL doorgeven aan het rapport. Het volgende codevoorbeeld kan worden gebruikt om Microsoft Internet Explorer te starten en een specifieke rapport-URL door te geven wanneer de gebruiker een knop op een Windows formulier selecteert.

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);  
   }  
}  

Een browserbesturing inbedden op een Windows-formulier

Als je je rapport niet in een externe webbrowser wilt bekijken, kun je een webbrowser naadloos inbedden als onderdeel van je Windows Formulier door de WebBrowser bediening te gebruiken.

Om de webbrowser-controle toe te voegen aan je Windows-formulier
  1. Maak een nieuwe Windows applicatie aan in Microsoft C# of Microsoft Visual Basic.

  2. Zoek de WebBrowser bediening in het Toolbox-dialoogvenster.

    Als de Toolbox niet zichtbaar is, kun je deze openen door het menu Bekijken te selecteren en Toolbox te selecteren.

  3. Sleep de WebBrowserbesturing naar het ontwerpoppervlak van je Windows Form.

    De WebBrowserbesturing genaamd webBrowser1 wordt toegevoegd aan het formulier

Je stuurt de WebBrowser controle naar een URL door de Navigeer-methode aan te roepen. Je kunt tijdens runtime een specifieke URL-toegangsstring aan je WebBrowser controle toewijzen, zoals in het volgende voorbeeld wordt getoond.

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