Поделиться через


Урок 3. Доступ к веб-службе

После добавления ссылки на веб-службу сервера отчетов в проект необходимо создать экземпляр прокси-класса веб-службы. Затем можно получить доступ к методам веб-службы, вызвав методы в прокси-классе. Когда приложение вызывает эти методы, код класса прокси, созданный Visual Studio, обрабатывает обмен данными между приложением и веб-службой.

Сначала вы создадите экземпляр прокси-класса ReportingService2010веб-службы. Затем вызовите метод веб-службы GetProperties с помощью прокси-класса. Вы будете использовать вызов для получения имени и описания одного из примеров отчетов, продажи компании.

Замечание

При доступе к веб-службе, работающей в SQL Server Express с расширенными службами, необходимо добавить "$SQLExpress" в путь "ReportServer". Рассмотрим пример.

http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"

Доступ к веб-службе

  1. Сначала необходимо добавить пространство имен в файл Program.cs (Module1.vb в Visual Basic), добавив using директиву (Imports в Visual Basic) в файл кода. Если вы используете эту директиву, вам не нужно полностью квалифицировать типы в пространстве имен.

  2. Для этого добавьте следующий код в начало файла кода:

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. После ввода директивы пространства имен в файл кода введите следующий код в метод Main консольного приложения. При настройке свойства URL-адреса экземпляра веб-службы обязательно измените имя сервера:

    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);  
       }  
    }  
    
  4. Сохраните решение.

В пошаговом руководстве пример кода используется GetProperties метод веб-службы для получения свойств примера отчета , Company Sales 2012. Метод GetProperties принимает два аргумента: имя отчета, для которого требуется получить сведения о свойствах и массив объектов Property[] , содержащих имена свойств, значения которых требуется извлечь. Метод также возвращает массив объектов Property[] , содержащих имена и значения свойств, указанных в аргументе свойств.

Замечание

Если указать пустой массив Property[] для аргумента свойств, возвращаются все доступные свойства.

В предыдущем примере код использует GetProperties метод для возврата имени и описания примера отчета , Company Sales 2012. Затем код использует foreach цикл для записи свойств и значений в консоль.

Дополнительные сведения о создании и использовании прокси-класса для веб-службы сервера отчетов см. в статье "Создание прокси-сервера веб-службы".

См. также

Урок 4. Запуск приложения (VB-VC#)
Доступ к веб-службе сервера отчетов с помощью Visual Basic или Visual C# (руководство по SSRS)