Integre Reporting Services usando acesso a URL - aplicação Windows

Embora o acesso por URL a um servidor de relatórios esteja otimizado para um ambiente Web, também pode usar o acesso a URL para incorporar relatórios Reporting Services numa aplicação Microsoft Windows. No entanto, o acesso a URL que envolve o Windows Forms ainda exige que utilize tecnologia de navegador Web. Pode usar os seguintes cenários de integração com acesso a URL e Windows Forms:

  • Exiba um relatório de uma aplicação Windows Form iniciando um navegador Web de forma programática.

  • Use o WebBrowser controlo num Windows Form para mostrar um relatório.

Iniciar o Internet Explorer a partir de um Windows Form

Podes usar a Process classe para aceder a um processo que está a correr num computador. A Process classe é uma construção útil Microsoft .NET Framework para iniciar, parar, controlar e monitorizar aplicações. Para visualizar um relatório específico na base de dados do seu servidor de relatórios, pode iniciar o processo IExplore , passando a URL do relatório. O seguinte exemplo de código pode ser usado para iniciar Microsoft Internet Explorer e passar um URL de relatório específico quando o utilizador seleciona um botão num Windows Formulário.

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

Incorporar um controlo do navegador num formulário do Windows

Se não quiser visualizar o seu relatório num navegador externo, pode incorporar um navegador Web de forma fluida como parte do seu Windows Form usando o WebBrowser controlo.

Para adicionar o controlo do Navegador Web ao seu Formulário do Windows
  1. Crie uma nova aplicação Windows em Microsoft C# ou Microsoft Visual Basic.

  2. Localiza o WebBrowser controlo na Caixa de Diálogo da Caixa de Ferramentas .

    Se a Caixa de Ferramentas não estiver visível, pode aceder a ela selecionando o elemento do menu Visualizar e selecionando a Caixa de Ferramentas.

  3. Arraste o WebBrowsercontrolo para a superfície de design do teu Windows Form.

    O WebBrowsercontrolo chamado webBrowser1 é adicionado ao Formulário

Dirige o WebBrowser controlo para uma URL chamando o seu método Navegar . Pode atribuir uma cadeia específica de acesso a URL ao seu WebBrowser controlo em tempo de execução, como mostrado no exemplo seguinte.

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