Partilhar 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 é um constructo útil do Microsoft .NET Framework para iniciar, interromper, controlar e monitorar aplicativos. Para exibir um relatório específico no banco de dados do servidor de relatório, inicie o processo IExplore, passando a URL para o 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);  
   }  
}  

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 do Windows 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, acesse-a clicando no item de menu Exibir e selecionando Caixa de Ferramentas.

  3. Arraste o controle WebBrowser para a superfície de design do 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?/" & _  
                    "AdventureWorks2012 Sample Reports/" & _  
                    "Company Sales&rs:Command=Render"  
WebBrowser1.Navigate(url)  
string url = "https://localhost/reportserver?/" +  
             "AdventureWorks2012 Sample Reports/" +  
             "Company Sales&rs:Command=Render";  
webBrowser1.Navigate(url);  

Consulte Também

Integração do Reporting Services em aplicativos
Integrando o Reporting Services usando o acesso à URL
Integrando o Reporting Services por meio do acesso de SOAP
Integrando o Reporting Services usando os controles ReportViewer
Acesso à URL (SSRS)