Condividi tramite


Utilizzo dell'accesso con URL in un'applicazione Windows

Sebbene l'accesso con URL a un server di report sia ottimizzato per un ambiente Web, è possibile utilizzarlo anche per incorporare i report di Reporting Services in un'applicazione Microsoft Windows. Per l'accesso con URL che comporta l'utilizzo di Windows Form è tuttavia necessario utilizzare comunque la tecnologia del browser Web. È possibile utilizzare gli scenari di integrazione seguenti con l'accesso con URL e Windows Form:

  • Visualizzazione di un report da un'applicazione Windows Form avviando un browser a livello di programmazione.

  • Utilizzo del controllo WebBrowser in un Windows Form per visualizzare un report.

Avvio di Internet Explorer da un Windows Form

È possibile utilizzare la classe Process per accedere a un processo in esecuzione in un computer. La classe Process è un costrutto Microsoft .NET Framework utile per avviare, arrestare, controllare e monitorare le applicazioni. Per visualizzare un report specifico nel database del server di report, è possibile avviare il processo IExplore, passando in URL al report. L'esempio di codice seguente può essere utilizzato per avviare Microsoft Internet Explorer e passare un URL del report specifico quando l'utente fa clic su un pulsante in un Windows Form.

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

Per ulteriori informazioni sulla sintassi specifica della stringa di accesso con URL al server di report, vedere Sintassi per l'accesso con URL.

Incorporamento di un controllo browser in un Windows Form

Se non si desidera visualizzare il report in un browser esterno, è possibile incorporare in modo semplice un browser come parte di un Windows Form utilizzando il controllo WebBrowser.

Per aggiungere il controllo WebBrowser al Windows Form

  1. Creare una nuova applicazione Windows utilizzando Microsoft Visual C# o Microsoft Visual Basic.

  2. Individuare il controllo WebBrowser nella casella degli strumenti.

    Se la casella degli strumenti non è visibile, è possibile accedervi scegliendo Casella degli strumenti dal menu Visualizza.

  3. Trascinare il controlloWebBrowsernell'area di progettazione di Windows Form.

    Il controllo WebBrowserdenominato webBrowser1 verrà aggiunto al form.

Indirizzare il controllo WebBrowser a un URL chiamando il relativo metodo Navigate. È possibile assegnare una stringa di accesso con URL specifica al controllo WebBrowser in fase di esecuzione come illustrato nell'esempio seguente.

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