Partilhar via


Integrar o Reporting Services usando o acesso à URL - 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.

Iniciar o Internet Explorer a partir de um formulário do Windows

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 passar uma URL de relatório específica quando o usuário seleciona um botão em um formulário do Windows.

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

Inserir um controle de navegador em um formulário do Windows

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

Para adicionar o controle WebBrowser ao seu Windows Form
  1. Crie um novo aplicativo do Windows no Microsoft 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 selecionando o 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?/" & _  
                    "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);