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
Creare una nuova applicazione Windows utilizzando Microsoft Visual C# o Microsoft Visual Basic.
Individuare il controllo WebBrowser nella casella degli strumenti.
Se la casella degli strumenti non è visibile, è possibile accedervi scegliendo Casella degli strumenti dal menu Visualizza.
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);