Compartilhar via


Usando a API SOAP em um aplicativo do Windows

Você pode acessar a funcionalidade completa do servidor de relatório por meio da API SOAP do Reporting Services. A API SOAP é um serviço Web e, como tal, pode ser facilmente acessada para fornecer recursos de relatórios corporativos para seus aplicativos de negócios personalizados. Você pode acessar o serviço Web em um aplicativo do Windows simplesmente escrevendo código que faz chamadas para o serviço. Usando o Microsoft .NET Framework, você pode gerar uma classe proxy que expõe as propriedades e os métodos do serviço Web e permite que você use uma infraestrutura e ferramentas familiares para criar aplicativos de negócios baseados na tecnologia do Reporting Services.

Integrando a funcionalidade de gerenciamento de relatórios usando o Windows Forms

Ao contrário do acesso à URL, a API SOAP expõe o conjunto completo de funções de gerenciamento disponíveis por meio do servidor de relatório. Isso significa que toda a funcionalidade administrativa do Gerenciador de Relatórios está disponível para desenvolvedores por meio de SOAP. Dessa forma, você pode desenvolver uma ferramenta completa de gerenciamento e administração usando o Windows Forms. Por exemplo, em seu aplicativo do Windows, convém permitir que os usuários recuperem o conteúdo do namespace do servidor de relatório. Para fazer isso, você pode usar o método de serviço ListChildren Web para listar todos os itens no banco de dados do servidor de relatório e, em seguida, usar um controle Listview, Treeview ou Combobox para exibir esses itens para seus usuários. O seguinte código de serviço Web pode ser usado para recuperar a lista atual de relatórios disponíveis na pasta Meus Relatórios de um usuário quando um usuário clica em um botão em um formulário:

' Button click event that retrieves a list of reports from  
' the My Reports folder and displays them in a combo box  
Private Sub listReportsButton_Click(sender As Object, e As System.EventArgs)  
   ' Create a new Web service object and set credentials  
   ' to Windows Authentication  
   Dim rs As New ReportingService2010()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  
   ' Return the list of items in My Reports  
   Dim items As CatalogItem() = rs.ListChildren("/Adventureworks 2008 Sample Reports", False)  
  
   Dim ci As CatalogItem  
   For Each ci In  items  
      ' If the item is a report, add it to   
      ' a combo box  
      If ci.TypeName = "Report" Then  
         catalogComboBox.Items.Add(ci.Name)  
      End If  
   Next ci  
End Sub 'listReportsButton_Click  
// Button click event that retrieves a list of reports from  
// the My Reports folder and displays them in a combo box  
private void listReportsButton_Click(object sender, System.EventArgs e)  
{  
   // Create a new Web service object and set credentials  
   // to Windows Authentication  
   ReportingService2010 rs = new ReportingService2010();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  
   // Return the list of items in My Reports  
   CatalogItem[] items = rs.ListChildren("/Adventureworks 2008 Sample Reports", false);  
  
   foreach (CatalogItem ci in items)  
   {  
      // If the item is a report, add it to   
      // a combo box  
      if (ci.TypeName == "Report")  
         catalogComboBox.Items.Add(ci.Name);  
   }  
}  

A partir daí, você pode permitir que os usuários selecionem o relatório na caixa de combinação e visualizar o relatório no formulário usando um controle do navegador da Web ou um controle de imagem.

Habilitando a exibição e a navegação de relatórios usando o Windows Forms

Há dois métodos disponíveis para integrar relatórios em seus aplicativos do Windows Forms.

Você pode usar a API SOAP para renderizar relatórios em qualquer um dos formatos de renderização com suporte usando o Render método. Há pequenas desvantagens em habilitar a exibição e a navegação de relatórios por meio do SOAP:

  • Você não pode aproveitar a funcionalidade interna da barra de ferramentas de relatório incluída no Visualizador de HTML por meio do acesso à URL.

  • Se você renderizar em HTML, deverá renderizar separadamente quaisquer imagens ou recursos como fluxos adicionais usando o RenderStream método.

  • Há uma pequena vantagem de desempenho para renderizar relatórios usando o acesso à URL usando a API SOAP.

No entanto, o Render método da API SOAP pode ser usado para renderizar relatórios e salvá-los em vários formatos de saída programaticamente. Essa é uma vantagem sobre o acesso à URL, que requer interação do usuário. Ao renderizar um relatório usando o método de API Render SOAP, você pode renderizar em qualquer um dos formatos de saída com suporte.

Você também pode usar os controles ReportViewer distribuíveis livremente incluídos no Microsoft Visual Studio 2008. Os controles ReportViewer facilitam a inserção da funcionalidade do Reporting Services em aplicativos personalizados. Os controles ReportViewer destinam-se a desenvolvedores que desejam fornecer relatórios pré-atribuídos e totalmente criados como parte de um conjunto de recursos de aplicativo (por exemplo, um aplicativo de gerenciamento de site pode incluir relatórios que mostram a análise de fluxo de cliques em sites da empresa). A inserção dos controles em um aplicativo fornece uma alternativa simplificada para incluir os componentes do servidor do Reporting Services em sua implantação de aplicativo. Os controles fornecem funcionalidade de relatório, mas sem o suporte adicional de criação, publicação ou distribuição e entrega de relatório que você encontra no Reporting Services.

Há duas versões dos controles ReportViewer, uma para aplicativos cliente Windows avançados e outra para aplicativos ASP.NET. Os controles dão suporte ao processamento local e aos modos de processamento remoto. No modo de processamento local, seu aplicativo fornece a definição de relatório e conjuntos de dados e dispara o processamento de relatório. No modo de processamento remoto, a recuperação de dados e o processamento de relatório ocorrem no servidor de relatório e o controle é usado para exibição e navegação de relatório. Esse modelo permite que você crie aplicativos avançados que podem ser dimensionados da área de trabalho para a empresa.

Os controles ReportViewer estão documentados na Ajuda online do Visual Studio. Para obter mais informações, consulte a documentação do produto do Visual Studio.

Consulte Também

Criando aplicativos usando o serviço Web e o .NET Framework
Integrando o Reporting Services em aplicativos
Usando a API SOAP em um aplicativo Web