Share via


Usar el acceso URL en una aplicación para 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 ejemplo de código siguiente se puede utilizar para iniciar Microsoft Internet Explorer y una dirección URL de un informe concreto cuando el usuario hace clic en un botón de 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);
   }
}

Para obtener más información sobre la sintaxis concreta de una cadena de acceso de dirección URL del servidor de informes, vea Sintaxis del acceso URL.

Incrustar un control de explorador en un formulario Windows Forms

Si no desea ver un informe en un explorador web externo, puede incrustar un explorador web fácilmente como parte de un formulario Windows Forms utilizando el control WebBrowser.

Para agregar el control WebBrowser al formulario Windows Forms

  1. Cree una aplicación nueva para Windows en MicrosoftVisual C# o MicrosoftVisual Basic.

  2. Busque el control WebBrowser en el cuadro de diálogo Cuadro de herramientas.

    Si el Cuadro de herramientas no está visible, puede tener acceso a él haciendo clic en el elemento del menú Ver y seleccionando Cuadro de herramientas.

  3. 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 al 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);