Добавление отчетов профессионального качества в приложение пользователя в Visual Studio


Web-службы для XML-отчетов - часть 2


В свою очередь, CachedCustomersBasic реализует интерфейс IcachedReports для создания кешированного отчета и в своем методе CreateReport создает экземпляр CustomersBasic (первый класс). С помощью интерфейса, подобного интерфейсу IcachedReports и использующего WebMethods, можно вывести отчет в виде XML Web Service.

Теперь взгляните на программу файла класса, который расположен под файлом CustomersBasicService.asmx. Этот файл также содержит два класса, но, в отличие от предыдущего файла, в нем один класс вложен в другой. CustomersBasicService наследуется из класса ReportServiceBase, который, в свою очередь, открывает веб-методы, необходимые для публикации отчета в виде XML Web Service. CustomersBasicService содержит класс CachedWebCustomersBasic, который, по своему существу, имеет точно такую же реализацию, что и уже рассмотренный класс CachedCustomersBasic. Различие можно найти в конструкторе:

Public Sub New(ByVal webServiceParam As CustomersBasicService)
Me.webService = webServiceParam
End Sub

Этот конструктор вызывается из конструктора CustomersBasicService, чтобы указать в нем атрибут webService кешированного отчета:

Public Sub New()
Me.ReportSource = New CachedWebCustomersBasic(Me)
End Sub

Подведем итоги: ReportClass в Crystal Report создает возможные строго типизированные отчеты; интерфейс IcachedReports позволяет создавать кешированные экземпляры ReportClass; и, наконец, ReportServiceBase создает интерфейс Web Services для строго типизированных отчетов, который благодаря атрибуту webService совместим с интерфейсом IcachedReports.

Кстати, вы не забыли о компоненте ServerFileReport, который я создал, перетащив из Server Explorer? В нем также задействуется технология Web Services. Если вы вернетесь в проект Windows Form, то заметите, что у sfrCustomersBasic имеется атрибут WebServiceURL указывающий на .asmx-файл общего вида. Адрес URL будет выглядеть примерно следующим образом: localhost/crystalreportwebformviewer/ServerFileReportService.asmx. Несмотря на то, что этот URL-адрес стандартен, атрибут ReportPathProperty класса sfrCustomersBasic, указывая на \MSDN\ CustomersBasic.rpt, задает относительный путь и имя отчета, который требуется запустить.




Начало  Назад  Вперед