Lição 3: Acessando o serviço Web
Depois que você adicionar uma referência para o serviço Web Servidor de Relatórios ao seu projeto, a próxima etapa será criar uma instância da classe proxy do serviço Web. Assim, você poderá acessar os métodos do serviço Web chamando os métodos na classe proxy. Quando seu aplicativo chama esses métodos, o código de classe proxy gerado pelo Visual Studio lida com as comunicações entre o aplicativo e o serviço Web.
Primeiro, você criará uma instância da classe proxy do serviço Web, ReportingService2010. Em seguida, você fará uma chamada ao método GetProperties do serviço Web usando a classe proxy. Use a chamada para recuperar o nome e descrição de um dos relatórios de exemplo, Company Sales.
Observação
Ao acessar um serviço Web em execução no SQL Server Express com os Serviços Avançados, você deve acrescentar "$SQLExpress" ao caminho "ReportServer". Por exemplo:
http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"
Para acessar o serviço Web
Primeiro, você deve adicionar o namespace ao arquivo Program.cs (Module1.vb no Visual Basic) adicionando uma
using
diretiva (Imports
no Visual Basic) ao arquivo de código. Se você usar essa política, não precisará qualificar os tipos completamente no namespace.Para fazer isso, adicione o seguinte código ao início de seu arquivo de código:
Imports System Imports GetPropertiesSample.ReportService2010
using System; using GetPropertiesSample.ReportService2010;
Após a inserção da diretiva de namespace no arquivo de código, digite o código a seguir no método Main do aplicativo de console. Não se esqueça de alterar o nome do servidor ao configurar a propriedade Url da instância do serviço Web:
Sub Main() Dim rs As New ReportingService2010 rs.Credentials = System.Net.CredentialCache.DefaultCredentials rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx" Dim name As New [Property] name.Name = "Name" Dim description As New [Property] description.Name = "Description" Dim properties(1) As [Property] properties(0) = name properties(1) = description Try Dim returnProperties As [Property]() = rs.GetProperties( _ "/AdventureWorks 2012 Sample Reports/Company Sales 2012", properties) Dim p As [Property] For Each p In returnProperties Console.WriteLine((p.Name + ": " + p.Value)) Next p Catch e As Exception Console.WriteLine(e.Message) End Try End Sub
static void Main(string[] args) { ReportingService2010 rs = new ReportingService2010(); rs.Credentials = System.Net.CredentialCache.DefaultCredentials; rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx"; Property name = new Property(); name.Name = "Name"; Property description = new Property(); description.Name = "Description"; Property[] properties = new Property[2]; properties[0] = name; properties[1] = description; try { Property[] returnProperties = rs.GetProperties( "/AdventureWorks 2012 Sample Reports/Company Sales 2012",properties); foreach (Property p in returnProperties) { Console.WriteLine(p.Name + ": " + p.Value); } } catch (Exception e) { Console.WriteLine(e.Message); } }
Salve a solução.
O código de exemplo passo a passo usa o método GetProperties do serviço Web para recuperar propriedades do relatório de exemplo, Company Sales 2012. O GetProperties método usa dois argumentos: o nome do relatório para o qual você deseja recuperar informações de propriedade e uma matriz de objetos Property[] que contém os nomes das propriedades cujos valores você deseja recuperar. O método também retorna uma matriz de objetos Property[] que contém os nomes e valores das propriedades especificadas no argumento properties.
Observação
Se você fornecer uma matriz Property[] vazia para o argumento properties, todas as propriedades disponíveis serão retornadas.
No exemplo anterior, o código usa o método GetProperties para retornar o nome e a descrição do relatório de exemplo, Company Sales 2012. O código usa um loop foreach
para gravar as propriedades e os valores no console.
Para obter mais informações sobre como criar e usar uma classe proxy para o serviço Web Servidor de Relatórios, consulte Creating the Web Service Proxy.
Consulte Também
Lição 4: Executando o aplicativo (VB-VC#)
Acessando o Serviço Web do Servidor de Relatórios com Visual Basic ou Visual C# (Tutorial SSRS)