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


Занятие 3. Определение набора данных отчета из внедренных XML-данных

Добавления: 17 июля 2006 г.

Используйте следующие шаги для изучения получения данных отчета из XML-данных, внедренных в запрос набора данных для источника XML-данных служб Reporting Services. В этом примере XML-данные для результирующего набора SQL-запроса образца базы данных AdventureWorks внедряются в запрос набора данных. В этом учебнике также демонстрируется, как указать узлы элементов и атрибуты, извлекаемые для набора данных отчета в теге ElementPath запроса.

Процедуры

Создание запроса для набора данных

  1. Откройте среду Microsoft SQL Server Management Studio.

  2. В диалоговом окне Соединение с сервером выберите Тип сервераКомпонент Database Engine.

  3. В поле Имя сервера введите имя сервера, на котором установлен образец базы данных AdventureWorks. Например: localhost.

  4. В обозревателе объектов разверните узел «Базы данных».

  5. Щелкните правой кнопкой мыши AdventureWorks и выберите команду Создать запрос.

  6. В область запроса вставьте следующий запрос:

    SELECT TOP 5 S.OrderDate, S.SalesOrderNumber, S.TotalDue, 
           C.FirstName, C.LastName
    FROM    HumanResources.Employee E INNER JOIN
            Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
            Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    ORDER BY S.TotalDue DESC
    FOR XML AUTO
    
  7. В области результатов выберите xml-результат и скопируйте его.

Добавление корневого узла в XML-документ

  1. Откройте Блокнот или другой редактор, по вашему усмотрению.

  2. Вставьте XML-текст.

  3. Перед левой строкой вставьте следующий XML-код: <Query><XmlData><Root>

  4. Добавьте следующий XML-код в последнюю строку: </Root></XmlData></Query>

    Эти XML-данные можно использовать в качестве тестовых.

Определение набора данных отчета для веб-службы

  1. Запустите конструктор отчетов и откройте проект сервера отчетов, созданный в этом учебнике.

  2. В представлении «Данные» выберите Новый набор данных. Введите имя набора данных (например, XMLEmbeddedDataSet).

  3. В диалоговом окне Набор данных в поле Источник данных выберите Создать источник данных. Откроется диалоговое окно Источник данных.

  4. Введите имя источника данных (например, XMLEmbeddedDataSource).

  5. В пункте Тип выберите XML.

  6. Оставьте пустым поле Строка соединения.

  7. Нажмите кнопку ОК для сохранения изменений и выхода из диалогового окна Источник данных.

  8. Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Набор данных».

  9. Скопируйте текст запроса из Блокнота или редактора, использованного в предыдущей процедуре, а затем вставьте его в область запроса. Этот запрос должен выглядеть следующим образом:

    <Query>
    <XmlData>
    <Root>
    <S OrderDate="2003-07-01T00:00:00" SalesOrderNumber="SO51131" TotalDue="247913.9138">
      <C FirstName="Shu" LastName="Ito" />
    </S>
    <S OrderDate="2003-10-01T00:00:00" SalesOrderNumber="SO55282" TotalDue="227737.7215">
      <C FirstName="Shu" LastName="Ito" />
    </S>
    <S OrderDate="2002-07-01T00:00:00" SalesOrderNumber="SO46616" TotalDue="207058.3754">
      <C FirstName="Jae" LastName="Pak" />
    </S>
    <S OrderDate="2002-08-01T00:00:00" SalesOrderNumber="SO46981" TotalDue="201490.4144">
      <C FirstName="Ranjit" LastName="Varkey Chudukatil" />
    </S>
    <S OrderDate="2002-09-01T00:00:00" SalesOrderNumber="SO47395" TotalDue="198628.3054">
      <C FirstName="Michael" LastName="Blythe" />
    </S>
    </Root>
    </XmlData>
    </Query>
    
  10. Нажмите кнопку Выполнить (!) для просмотра результирующего набора. Обратите внимание, что запрос к XML-данным по умолчанию выбирает все атрибуты и элементы по первому пути вплоть до конечного узла.

  11. Укажите, какие элементы включать в результирующий набор, добавив в запрос тег ElementPath. Вставьте следующий текст в область «Запрос» непосредственно после тега Query, но перед тегом XmlData.

    <ElementPath>Root /S  {@OrderDate (Date), @TotalDue (Decimal)} /C {@LastName} </ElementPath>
    

    Этот путь к элементу задает следующее:

    • вернуть атрибут OrderDate в виде даты и атрибут TotalDue в десятичном виде для элемента S;
    • вернуть атрибут LastName (по умолчанию тип String) для элемента C.
  12. Нажмите кнопку Выполнить (!) для просмотра результирующего набора. Теперь результаты содержат только те элементы и атрибуты, которые указаны в разделе ElementPath. Атрибут OrderDate задает тип Date, значение которого преобразуется к типу DateTime. Аналогично тип TotalDue преобразуется к формату Decimal.

  13. На панели инструментов нажмите кнопку Обновить поля (Обновление полей набора данных). Таким образом сохраняется определение отчета и обновляется представление полей в окне Наборы данных отчета, показывающем все доступные поля.

Следующие шаги

Был успешно определен набор данных отчета из XML-данных, внедренных в запрос набора данных. При обработке отчета данные каждого XML-элемента Table и его атрибутов извлекаются из веб-службы. Далее будет создан отчет, использующий наборы данных из занятий 1, 2 и 3. См. раздел Занятие 4. Создание отчета, использующего XML-данные

См. также

Основные понятия

Учебники по службам Reporting Services

Другие ресурсы

Определение наборов данных отчета для XML-данных
Соединение с источником данных
Определение наборов данных отчета
Как создать или изменить источник данных, связанный с отчетом (конструктор отчетов)
Как создать набор данных (конструктор отчетов)
Работа с полями набора данных отчета
Как добавить, изменить или удалить поле в окне «Наборы данных» (конструктор отчетов)
Наборы данных отчета (конструктор отчетов)
Синтаксис пути к элементу для определения XML-данных отчета

Справка и поддержка

Получение помощи по SQL Server 2005