Занятие 1. Создание проекта Visual Studio «RDL-схема»
В этом учебнике будет создано простое приложение командной строки. Предполагается, что разработка ведется в среде Microsoft Visual Studio 2010.
Примечание |
---|
Чтобы обращаться к веб-службе сервера отчетов, работающей на сервере SQL Server Express с дополнительными службами, необходимо добавить «_SQLExpress» к пути «ReportServer». Например: http://myserver/reportserver_sqlexpress/reportservice2010.asmx" |
Создание учетной записи-посредника веб-службы
Выберите Пуск, Все программы, Microsoft Visual Studio 2010, а затем Средства Visual Studio и Командная строка Visual Studio 2010.
Если используется C#, в окне командной строки выполните следующую команду:
wsdl /language:CS /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
Если используется Visual Basic, выполните следующую команду:
wsdl /language:VB /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl
Команда создаст файл с расширением CS или VB. Этот файл следует добавить к приложению.
Создание приложения командной строки
В меню Файл выберите Создать, а затем Проект, чтобы открыть диалоговое окно Новый проект.
В панели слева в разделе Установленные шаблоны щелкните узел Visual Basic или Visual C# и выберите категорию типов проекта из раскрывшегося списка.
Выберите тип проекта Консольное приложение.
В поле Name введите имя проекта. Введите имя SampleRDLSchema.
В поле Расположение введите путь, по которому будет сохранен проект, или нажмите кнопку Обзор, чтобы перейти в эту папку.
Нажмите кнопку ОК. . В обозревателе решений появится свернутое представление проекта.
В меню Проект выберите пункт Добавить существующий элемент.
Перейдите в папку, где находится созданный файл CS или VB, выберите файл и нажмите кнопку Добавить.
Также для обеспечения работоспособности веб-ссылки необходимо добавить ссылку на пространство имен System.Web.Services.
В меню «Проект» выберите пункт Добавить ссылку.
В диалоговом окне Добавить ссылку на вкладке .NET выберите System.Web.Services и нажмите кнопку ОК.
Дополнительные сведения о том, как выполнить подключение к веб-службе сервера отчетов, см. в разделе Построение приложений с помощью веб-службы и платформы .NET Framework.
Раскройте узел проекта в обозревателе решений. К проекту будет добавлен файл кода с именем по умолчанию Program.cs (Module1.vb для Visual Basic).
Откройте файл Program.cs (Module1.vb для Visual Basic) и замените код следующим.
Следующий код обеспечивает заглушки методов, которые будут использоваться для выполнения функций загрузки, обновления и сохранения.
using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; using ReportService2010; namespace SampleRDLSchema { class ReportUpdater { ReportingService2010 _reportService; static void Main(string[] args) { ReportUpdater reportUpdater = new ReportUpdater(); reportUpdater.UpdateReport(); } private void UpdateReport() { try { // Set up the Report Service connection _reportService = new ReportingService2010(); _reportService.Credentials = System.Net.CredentialCache.DefaultCredentials; _reportService.Url = "http://<Server Name>/reportserver/" + "reportservice2010.asmx"; // Call the methods to update a report definition LoadReportDefinition(); UpdateReportDefinition(); PublishReportDefinition(); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } private void LoadReportDefinition() { //Lesson 3: Load a report definition from the report // catalog } private void UpdateReportDefinition() { //Lesson 4: Update the report definition using the // classes generated from the RDL Schema } private void PublishReportDefinition() { //Lesson 5: Publish the updated report definition back // to the report catalog } } }
Imports System Imports System.Collections.Generic Imports System.IO Imports System.Text Imports System.Xml Imports System.Xml.Serialization Imports ReportService2010 Namespace SampleRDLSchema Module ReportUpdater Private m_reportService As ReportingService2010 Public Sub Main(ByVal args As String()) Try 'Set up the Report Service connection m_reportService = New ReportingService2010 m_reportService.Credentials = _ System.Net.CredentialCache.DefaultCredentials m_reportService.Url = _ "http:// <Server Name>/reportserver/" & _ "reportservice2010.asmx" 'Call the methods to update a report definition LoadReportDefinition() UpdateReportDefinition() PublishReportDefinition() Catch ex As Exception System.Console.WriteLine(ex.Message) End Try End Sub Private Sub LoadReportDefinition() 'Lesson 3: Load a report definition from the report ' catalog End Sub Private Sub UpdateReportDefinition() 'Lesson 4: Update the report definition using the ' classes generated from the RDL Schema End Sub Private Sub PublishReportDefinition() 'Lesson 5: Publish the updated report definition back ' to the report catalog End Sub End Module End Namespace
Следующее занятие
На следующем занятии предстоит использовать программу определения XML-схемы (Xsd.exe) для формирования классов из RDL-схемы и включения их в проект. См. раздел Занятие 2. Формирование классов из RDL-схемы с помощью инструмента xsd.