Integración de Reporting Services mediante el acceso URL: aplicación Windows
Aunque el acceso URL a un servidor de informes se optimiza para un entorno web, también puede utilizar el acceso URL para incrustar informes de Reporting Services en una aplicación para Microsoft Windows. Sin embargo, el acceso URL que implica formularios Windows Forms todavía requiere que use la tecnología del explorador web. Puede utilizar los escenarios de integración siguientes con el acceso URL y los formularios Windows Forms:
Mostrar un informe de una aplicación de formulario Windows Forms iniciando mediante programación un explorador web.
Usar el control WebBrowser en un formulario Windows Forms para mostrar un informe.
Iniciar Internet Explorer desde un formulario Windows Forms
Puede utilizar la clase Process para tener acceso a un proceso que se está ejecutando en un equipo. La clase Process es una construcción de Microsoft .NET Framework que sirve de utilidad para iniciar, detener, controlar y supervisar las aplicaciones. Para ver un informe concreto en la base de datos del servidor de informes, puede iniciar el proceso IExplore y pasarle la dirección URL al informe. El siguiente ejemplo de código se puede usar para iniciar Microsoft Internet Explorer y pasar una dirección URL de informe específica cuando el usuario selecciona un botón en un formulario Windows Forms.
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);
}
}
Inserción de un control de explorador en un formulario Windows Forms
Si no desea ver el informe en un explorador web externo, puede insertar un explorador web sin problemas como parte de windows Forms mediante el WebBrowser control .
Para agregar el control WebBrowser al formulario Windows Forms
Cree una nueva aplicación de Windows en Microsoft C# o Microsoft Visual Basic.
Busque el control WebBrowser en el cuadro de diálogo Cuadro de herramientas.
Si el cuadro de herramientas no está visible, puede acceder a él seleccionando el elemento de menú Ver y seleccionando Cuadro de herramientas.
Arrastre el control WebBrowser a la superficie de diseño del formulario Windows Forms.
El control WebBrowser denominado webBrowser1 se agrega al formulario
Al llamar al método del control WebBrowserNavigate, dirige el control a una dirección URL. Puede asignar una cadena de acceso URL concreta al control WebBrowser en tiempo de ejecución como se muestra en el ejemplo siguiente.
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);