Compartilhar via


Usando acesso à URL em um aplicativo do Windows

Embora o acesso à URL a um servidor de relatório seja otimizado para um ambiente da Web, você também pode usá-lo para inserir relatórios do Reporting Services em um aplicativo do Microsoft Windows. No entanto, o acesso à URL que envolve o Windows Forms ainda exige que você use tecnologia de navegador da Web. Você pode usar os seguintes cenários de integração com o acesso à URL e o Windows Forms:

  • Exiba um relatório de um aplicativo Windows Form iniciando um navegador da Web programaticamente.

  • Use o controle WebBrowser em um Windows Form para exibir um relatório.

Iniciando o Internet Explorer a partir de um Windows Form

Você pode usar a classe Process para acessar um processo que esteja em execução em um computador. A classe Process é uma construção útil do Microsoft .NET Framework para iniciar, parar, controlar e monitorar aplicativos. Para exibir um relatório específico em seu banco de dados do servidor de relatório, inicie o processo IExplore, passando a URL ao relatório. O exemplo de código a seguir pode ser usado para iniciar o Microsoft Internet Explorer e para passar uma URL específica do relatório quando o usuário clicar em um botão de um 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);
   }
}

Para obter mais informações sobre a sintaxe específica de uma cadeia de caracteres de acesso à URLdo servidor de relatório, consulte Sintaxe do acesso à URL.

Inserindo um controle de navegador em um Windows Form

Se você não quiser exibir o seu relatório em um navegador da Web externo, poderá inserir um navegador da Web de forma direta, como parte do seu Windows Form, usando o controle WebBrowser.

Para adicionar o controle WebBrowser ao seu Windows Form

  1. Crie um aplicativo de Windows novo no Microsoft Visual C# ou no Microsoft Visual Basic.

  2. Localize o controle WebBrowser na caixa de diálogo Caixa de Ferramentas.

    Se a Caixa de Ferramentas não estiver visível, você poderá acessá-la clicando no item de menu Exibir e selecionando Caixa de Ferramentas.

  3. Arraste o controle WebBrowser para a superfície de design do seu Windows Form.

    O controle WebBrowser chamado webBrowser1 será adicionado ao Form

Direcione o controle WebBrowser para uma URL chamando seu método Navigate. Você pode atribuir uma cadeia de caracteres de acesso à URL específica ao seu controle WebBrowser em tempo de execução como mostrado no exemplo a seguir.

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