Урок 3. Доступ к веб-службе
После добавления в проект ссылки на веб-службу сервера отчетов будет создан экземпляр класса-посредника этой веб-службы. Теперь можно получить доступ к методам веб-службы путем вызова методов класса-посредника. Когда приложение вызывает эти методы, код прокси-класса, созданный Visual Studio, обрабатывает обмен данными между приложением и веб-службой.
Вначале нужно создать экземпляр класса-посредника веб-службы ReportingService2010. Затем с помощью класса-посредника нужно вызвать метод веб-службы GetProperties. Вызов будет использован для получения имени и описания одного из образцов отчетов под названием Company Sales.
Примечание
При доступе к веб-службе, работающей на SQL Server Express с дополнительными службами, необходимо добавить $SQLExpress к пути ReportServer. Например:
http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"
Получение доступа к веб-службе
Сначала необходимо добавить пространство имен в файл Program.cs (Module1.vb в Visual Basic), добавив директиву
using
(Imports
в Visual Basic) в файл кода. Если применить эту директиву, нет необходимости полностью уточнять типы пространства имен.Чтобы сделать это, добавьте следующий код в начало файла с кодом:
Imports System Imports GetPropertiesSample.ReportService2010
using System; using GetPropertiesSample.ReportService2010;
После добавления директивы пространства имен в файл кода необходимо ввести следующий код в описание главного метода приложения командной строки. При настройке свойства 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); } }
Сохраните решение.
В образце кода из этого пошагового руководства используется метод веб-службы GetProperties для получения свойства образца отчета «Продажи компании в 2012 г.». Метод GetProperties принимает два аргумента: имя отчета, для которого требуется получить сведения о свойствах, и массив объектов Property[] , содержащий имена свойств, значения которых требуется извлечь. Этот метод возвращает массив объектов Property[] , который содержит имена и значения свойств, указанных в аргументе свойств.
Примечание
Если в качестве аргумента свойств указать пустой массив Property[] , будут возвращены все доступные свойства.
В коде предыдущего примера используется метод GetProperties, возвращающий имя и описание образца отчета «Продажи компании в 2012 г.». В этом коде используется цикл foreach
, чтобы вывести свойства и значения на консоль.
Дополнительные сведения о создании и использовании класса-посредника для веб-службы сервера отчетов см. в разделе Creating the Web Service Proxy.
См. также:
Урок 4. Запуск приложения (VB-VC#)
Доступ к веб-службе сервера отчетов на языке Visual Basic или Visual C# (учебник по службам SSAS)