Integrera Reporting Services genom att använda URL-åtkomst - Windows-applikation

Även om URL-åtkomst till en rapportserver är optimerad för en webbmiljö, kan du också använda URL-åtkomst för att bädda in Reporting Services rapporter i en Microsoft Windows applikation. Men URL-åtkomst som involverar Windows Forms kräver fortfarande att du använder webbläsarteknik. Du kan använda följande integrationsscenarier med URL-åtkomst och Windows Forms:

  • Visa en rapport från ett Windows Form-program genom att starta en webbläsare programmässigt.

  • Använd WebBrowser kontrollen på ett Windows-formulär för att visa en rapport.

Starta Internet Explorer från ett Windows-formulär

Du kan använda Process klassen för att komma åt en process som körs på en dator. Klassen Process är en användbar Microsoft .NET Framework-konstruktion för att starta, stoppa, styra och övervaka applikationer. För att se en specifik rapport i din rapportserverdatabas kan du starta IExplore-processen och skicka in URL:en till rapporten. Följande kodexempel kan användas för att starta Microsoft Internet Explorer och skicka en specifik rapport-URL när användaren väljer en knapp på ett Windows formulär.

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

Bädda in en webbläsarkontroll på ett Windows-formulär

Om du inte vill se din rapport i en extern webbläsare kan du sömlöst bädda in en webbläsare som en del av ditt Windows-formulär genom att använda kontrollenWebBrowser.

För att lägga till webbläsarkontrollen i ditt Windows-formulär
  1. Skapa en ny Windows applikation i antingen Microsoft C# eller Microsoft Visual Basic.

  2. Hitta WebBrowser kontrollen i Toolbox-dialogrutan.

    Om Toolbox inte är synlig kan du komma åt den genom att välja Vy-menyn och välja Toolbox.

  3. Dra WebBrowserkontrollen till designytan på din Windows Form.

    Kontrollen WebBrowsermed namnet webBrowser1 läggs till i formuläret

Du styr WebBrowser kontrollen till en URL genom att anropa dess Navigate-metod . Du kan tilldela en specifik URL-åtkomststräng till din WebBrowser kontroll vid körning som visas i följande exempel.

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