Занятие 3. Определение набора данных отчета из внедренных XML-данных
Добавления: 17 июля 2006 г.
Используйте следующие шаги для изучения получения данных отчета из XML-данных, внедренных в запрос набора данных для источника XML-данных служб Reporting Services. В этом примере XML-данные для результирующего набора SQL-запроса образца базы данных AdventureWorks внедряются в запрос набора данных. В этом учебнике также демонстрируется, как указать узлы элементов и атрибуты, извлекаемые для набора данных отчета в теге ElementPath запроса.
Процедуры
Создание запроса для набора данных
Откройте среду Microsoft SQL Server Management Studio.
В диалоговом окне Соединение с сервером выберите Тип сервераКомпонент Database Engine.
В поле Имя сервера введите имя сервера, на котором установлен образец базы данных AdventureWorks. Например: localhost.
В обозревателе объектов разверните узел «Базы данных».
Щелкните правой кнопкой мыши AdventureWorks и выберите команду Создать запрос.
В область запроса вставьте следующий запрос:
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
В области результатов выберите xml-результат и скопируйте его.
Добавление корневого узла в XML-документ
Откройте Блокнот или другой редактор, по вашему усмотрению.
Вставьте XML-текст.
Перед левой строкой вставьте следующий XML-код:
<Query><XmlData><Root>
Добавьте следующий XML-код в последнюю строку:
</Root></XmlData></Query>
Эти XML-данные можно использовать в качестве тестовых.
Определение набора данных отчета для веб-службы
Запустите конструктор отчетов и откройте проект сервера отчетов, созданный в этом учебнике.
В представлении «Данные» выберите Новый набор данных. Введите имя набора данных (например, XMLEmbeddedDataSet).
В диалоговом окне Набор данных в поле Источник данных выберите Создать источник данных. Откроется диалоговое окно Источник данных.
Введите имя источника данных (например, XMLEmbeddedDataSource).
В пункте Тип выберите XML.
Оставьте пустым поле Строка соединения.
Нажмите кнопку ОК для сохранения изменений и выхода из диалогового окна Источник данных.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Набор данных».
Скопируйте текст запроса из Блокнота или редактора, использованного в предыдущей процедуре, а затем вставьте его в область запроса. Этот запрос должен выглядеть следующим образом:
<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>
Нажмите кнопку Выполнить (!) для просмотра результирующего набора. Обратите внимание, что запрос к XML-данным по умолчанию выбирает все атрибуты и элементы по первому пути вплоть до конечного узла.
Укажите, какие элементы включать в результирующий набор, добавив в запрос тег ElementPath. Вставьте следующий текст в область «Запрос» непосредственно после тега Query, но перед тегом XmlData.
<ElementPath>Root /S {@OrderDate (Date), @TotalDue (Decimal)} /C {@LastName} </ElementPath>
Этот путь к элементу задает следующее:
- вернуть атрибут OrderDate в виде даты и атрибут TotalDue в десятичном виде для элемента S;
- вернуть атрибут LastName (по умолчанию тип String) для элемента C.
Нажмите кнопку Выполнить (!) для просмотра результирующего набора. Теперь результаты содержат только те элементы и атрибуты, которые указаны в разделе ElementPath. Атрибут OrderDate задает тип Date, значение которого преобразуется к типу DateTime. Аналогично тип TotalDue преобразуется к формату Decimal.
На панели инструментов нажмите кнопку Обновить поля (). Таким образом сохраняется определение отчета и обновляется представление полей в окне Наборы данных отчета, показывающем все доступные поля.
Следующие шаги
Был успешно определен набор данных отчета из XML-данных, внедренных в запрос набора данных. При обработке отчета данные каждого XML-элемента Table и его атрибутов извлекаются из веб-службы. Далее будет создан отчет, использующий наборы данных из занятий 1, 2 и 3. См. раздел Занятие 4. Создание отчета, использующего XML-данные
См. также
Основные понятия
Учебники по службам Reporting Services
Другие ресурсы
Определение наборов данных отчета для XML-данных
Соединение с источником данных
Определение наборов данных отчета
Как создать или изменить источник данных, связанный с отчетом (конструктор отчетов)
Как создать набор данных (конструктор отчетов)
Работа с полями набора данных отчета
Как добавить, изменить или удалить поле в окне «Наборы данных» (конструктор отчетов)
Наборы данных отчета (конструктор отчетов)
Синтаксис пути к элементу для определения XML-данных отчета