Урок 1. Создание проекта схемы RDL в Visual Studio

В этом руководстве вы создадите простое консольное приложение. В этом руководстве предполагается, что вы разрабатываете в Microsoft Visual Studio 2010.

Замечание

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

http://myserver/reportserver_sqlexpress/reportservice2010.asmx"

Создать прокси-сервер веб-службы

  1. В меню "Пуск " выберите "Все программы", а затем Microsoft Visual Studio Tools, а затем командную строку Visual Studio 2010.

  2. В окне командной строки выполните следующую команду, если вы используете 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. Этот файл будет добавлен в приложение.

Создание консольного приложения

  1. В меню "Файл" наведите указатель мыши на "Создать", а затем щелкните "Проект ", чтобы открыть диалоговое окно "Новый проект ".

  2. В области слева в разделе "Установленные шаблоны" щелкните visual Basic или узел Visual C# и выберите категорию типов проектов из развернутого списка.

  3. Выберите тип проекта консольного приложения .

  4. В поле Name введите имя проекта. Введите имя SampleRDLSchema.

  5. В поле "Расположение " введите путь, в котором нужно сохранить проект, или нажмите кнопку "Обзор ", чтобы перейти к папке.

  6. Нажмите кнопку ОК. Свернутое представление вашего проекта отображается в проводнике решений.

  7. В меню Проект щелкните Добавить существующий элемент.

  8. Перейдите к расположению созданного .cs или .vb файла, а затем выберите файл и нажмите кнопку "Добавить".

    Вам также потребуется добавить ссылку на Services пространство имен для работы веб-ссылки.

  9. В меню "Проект" нажмите кнопку "Добавить ссылку".

    В диалоговом окне "Добавить ссылку" на вкладке .NET выберите System.Web.Services и нажмите кнопку "ОК".

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

  10. В обозревателе решений разверните узел проекта. В проект добавлен файл кода с именем по умолчанию Program.cs (Module1.vb для Visual Basic).

  11. Откройте файл Program.cs (Module1.vb для Visual Basic) и замените код следующим кодом:

    В следующем коде приведены заготовки методов, которые мы будем использовать для реализации функций Load, Update и Save.

    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.

См. также

Обновление отчетов с помощью классов, созданных из схемы RDL (руководство по SSRS)
Язык определения отчетов (SSRS)