Формирование веб-каналов данных из отчетов (построитель отчетов и службы SSRS)Generating Data Feeds from Reports (Report Builder and SSRS)

Модуль подготовки отчетов служб Службы Reporting ServicesReporting Services Atom формирует сервисный документ Atom, в котором перечислены веб-каналы данных, доступные в отчете с разбиением на страницы, а также веб-каналы данных из областей данных в отчете.The Службы Reporting ServicesReporting Services Atom rendering extension generates an Atom service document that lists the data feeds available from a paginated report and the data feeds from the data regions in a report. Этот модуль используется для формирования совместимых с Atom потоков данных, которые допускают чтение и обмен данными с приложениями, которые потребляют потоки данных, формируемые отчетами.You use this extension to generate Atom-compliant data feeds that are readable and exchangeable with applications that can consume data feeds generated from reports. Модуль подготовки отчетов Atom можно применить, например, для формирования веб-каналов данных, которые будут использоваться в Power Pivot или Power BI.For example, you can use the Atom rendering extension to generated data feeds that you can then use in Power Pivot or Power BI.

Сервисный документ Atom содержит сведения по меньшей мере об одном потоке данных для каждой области данных отчета.The Atom service document lists at least one data feed for each data region in a report. В зависимости от типа области данных и самих данных, которые отображает эта область, службы Службы Reporting ServicesReporting Services могут сформировать из нее несколько потоков данных.Depending on the type of data region and the data that the data region displays, Службы Reporting ServicesReporting Services might generate multiple data feeds from a data region. Несколько потоков данных может породить, к примеру, матрица или диаграмма.For example, a matrix or chart can provide multiple data feeds. Когда модуль подготовки отчетов Atom создает сервисный документ Atom, для каждого потока данных создается уникальный идентификатор, который упоминается в URL-адресе для доступа к содержимому потока данных.When the Atom rendering extension creates the Atom service document, a unique identifier is created for each data feed and you use the identifier in the URL to access the content of the data feed.

Метод формирования модулем подготовки отчетов Atom данных для потока данных аналогичен методу, при помощи которого модуль подготовки отчетов в формате CSV формирует данные для CSV-файла.The way that the Atom rendering extension generates data for a data feed is similar to how the Comma-Separated Value (CSV) rendering extension renders data to a CSV file. Как и CSV-файл, поток данных содержит плоское представление данных отчета.Like a CSV file, a data feed is a flattened representation of the report data. Например, таблица с группой строк, которые суммируют продажи в группе, повторяет эту сумму в каждой строке данных. Отдельная строка, содержащая только эту сумму, отсутствует.For example, a table with a row group that sums the sales within a group repeats the sum in every data row and there is no separate row that contains only the sum.

Сервисные документы и веб-каналы данных Atom можно формировать с помощью веб-портала Службы Reporting ServicesReporting Services , сервера отчетов или сайта SharePoint, интегрированного в Службы Reporting ServicesReporting Services.You can generate Atom service documents and data feeds using the Службы Reporting ServicesReporting Services web portal, Report Server, or a SharePoint site that is integrated with Службы Reporting ServicesReporting Services.

Atom отвечает двум родственным стандартам.Atom applies to a pair of related standards. Сервисный документ Atom соответствует спецификациям протокола публикации RFC 5023 Atom, а потоки данных соответствуют спецификациям протокола формата синдикации RFC 4287 Atom.The Atom service document conforms to the RFC 5023 Atom publishing protocol specification and the data feeds conform to the RFC 4287 Atom syndication format protocol specification.

Следующие разделы предоставляют дополнительные сведения об использовании модуля подготовки отчетов Atom.The following sections provide additional information about how to use the Atom rendering extension:

Создать и изменить разбитое на страницы определение отчета (RDL-файл) в SQL Server Data Tools можно с помощью построителя отчетов и конструктора отчетов.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов.Each authoring environment provides different ways to create, open, and save reports and related items.

Отчеты как потоки данныхReports as Data Feeds

Можно экспортировать производственный отчет в виде потока данных, либо создать отчет, основной целью которого является предоставление данных приложениям в форме потоков данных.You can export a production report as a data feed or you can create a report whose primary purpose is provide data, in the form of data feeds, to applications. Использование отчетов в качестве потоков данных представляет собой альтернативный способ предоставления данных приложениям в тех случаях, когда доступ к данным через клиентские поставщики данных затруднен, либо необходимо скрыть сложность источника данных и упростить использование данных из него.Using reports as a data feed gives you an additional way to provide data to applications when the data is not easy to access through client data providers, or when you prefer to hide the complexity of the data source and make it simpler to use the data. Еще одним преимуществом работы с данными отчета как с веб-каналами данных является возможность использования таких средств и функций Службы Reporting ServicesReporting Services , как функции защиты, планирования и создания мгновенных снимков отчетов при управлении отчетами, предоставляющими веб-каналы данных.Another benefit of using report data as a data feed is that you can use Службы Reporting ServicesReporting Services features such as security, scheduling, and report snapshots to manage the reports that provide data feeds.

Чтобы получить максимальную отдачу от модуля подготовки отчетов Atom, необходимо разобраться в том, как отчет преобразуется в потоки данных.To get the most from the Atom rendering extension, you should understand how the report is rendered into data feeds. При работе с существующими отчетами полезно иметь возможность предсказать, какие веб-каналы данных будут порождены этими отчетами. Если же отчет создается специально для использования в качестве потоков данных, важно включить данные и настроить макет отчета таким образом, чтобы потоки данных оказались максимально полезными.If you are using existing reports, being able to predict what the data feeds the reports will generate is useful; if you are writing report specifically for use as data feeds, being able to include the data and fine tune the report layout to maximize the usefulness of the data feeds is valuable.

Дополнительные сведения см. в разделе Формирование веб-каналов данных из отчета (построитель отчетов и службы SSRS).For more information, see Generate Data Feeds from a Report (Report Builder and SSRS).

Сервисный документ Atom (файл ATOMSVC)Atom Service Document (.atomsvc file)

Сервисный документ Atom определяет связь с одним или несколькими веб-каналами данных.An Atom service document specifies a connection to one or more data feeds. В простейшем варианте это просто URL-адрес службы, порождающей поток данных.At a minimum, the connection is a simple URL to the data service that produces the feed.

При подготовке данных отчета с помощью модуля Atom сервисный документ Atom содержит список потоков данных, доступных для отчета.When you render report data by using the Atom rendering extension, the Atom service document lists the data feeds available for a report. Этот документ содержит сведения по меньшей мере об одном потоке данных для каждой области данных отчета.The document lists at least one data feed for each data region in the report. Таблицы и датчики формируют только по одному потоку данных, но матрицы, списки и диаграммы могут формировать несколько потоков в зависимости от отображаемых ими данных.Tables and gauges generate only one data feed each, but matrices, lists, and charts might generated multiple depending on the data they display.

На следующей иллюстрации показан отчет, содержащий две таблицы и диаграмму.The following diagram shows a report that uses two tables and a chart.

RS_Atom_TableAndChartDataFeedsRS_Atom_TableAndChartDataFeeds

Сервисный документ Atom, сформированный из этого отчета, включает три потока данных: по одному для каждой таблицы и один для диаграммы.The Atom service document generated from this report includes three data feeds, one for each table and one for the chart.

Области данных матрицы могут содержать более одного потока данных в зависимости от структуры матрицы.The matrix data regions might have more than one data feed, depending on the structure of the matrix. На следующей диаграмме показан отчет, содержащий матрицу, которая формирует два потока данных.The following diagram shows a report that uses a matrix that generates two data feeds.

RS_Atom_PeerDynamicColumnsRS_Atom_PeerDynamicColumns

Сервисный документ Atom, сформированный из этого отчета, включает два потока данных: по одному для каждого динамического однорангового столбца «Территория» и «Год».The Atom service document generated from this report includes two data feeds, one for each of the dynamic peer columns: Territory and Year. Следующая диаграмма показывает содержимое каждого из этих потоков данных.The following diagram shows the content of each data feed.

RS_Atom_PeerDynamicDataFeedsRS_Atom_PeerDynamicDataFeeds

Потоки данныхData Feeds

Поток данных представляет собой XML-файл в согласованном табличном формате, который не меняется со временем, и содержит переменные данные, которые могут изменяться при каждом выполнении отчета.The data feed is an XML file that has a consistent tabular format that does not change over time and variable data that can be different each time the report is run. Службы Службы Reporting ServicesReporting Services формируют данные в том же формате, что и службы ADO.NET Data Services.The data feeds generated by Службы Reporting ServicesReporting Services are in the same format as those generated by that ADO.NET Data Services.

Поток данных содержит два раздела: заголовок и данные.A data feed contains two sections: header and data. Элементы каждого раздела определяются спецификациями Atom.The Atom specification defines the elements in each section. Заголовок содержит такие сведения, как схема кодирования символов, используемая веб-каналами данных.The header includes information such as the character encoding schema to use with the data feeds.

Раздел заголовкаHeader Section

Следующий код XML иллюстрирует раздел заголовка потока данных.The following XML code shows the header section of a data feed.

<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">

<title type="text"></title>

<id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166321</id>

<updated>2009-05-08T23:09:58Z</updated>

Раздел данныхData Section

Раздел данных веб-каналов данных содержит по одному элементу <entry> для каждой строки плоского набора строк, сформированного модулем подготовки отчетов Atom.The data section of the data feeds contains one <entry> element for each row in the flattened rowset generated by the Atom rendering extension.

На следующей диаграмме показан отчет, содержащий группы и итоговые значения.The following diagram shows a report that uses groups and totals.

RS_Atom_ProductSalesSummaryCircledValuesRS_Atom_ProductSalesSummaryCircledValues

Следующий код XML показывает элемент <entry> из этого отчета в веб-канале данных.The following XML shows an <entry> element from that report in a data feed. Обратите внимание, что элемент <entry> включает итоговые значения по продажам и заказам для группы и итоговые значения по продажам и заказам для всех групп.Notice that the <entry> element includes the totals of the sales and orders for the group and the totals of sales and orders for all the groups. Элемент <entry> включает все значения отчета.The <entry> element includes all values on the report.

<entry><id>uuid:1795992c-a6f3-40ec-9243-fbfd0b1a5be3;id=166322</id><title type="text"></title><updated>2009-05-08T23:09:58Z</updated><author /><content type="application/xml"><m:properties>

<d:ProductCategory_Value>Accessories</d:ProductCategory_Value>

<d:OrderYear_Value m:type="Edm.Int32">2001</d:OrderYear_Value>

<d:SumLineTotal_Value m:type="Edm.Decimal">20235.364608</d:SumLineTotal_Value>

<d:SumOrderQty_Value m:type="Edm.Int32">1003</d:SumOrderQty_Value>

<d:SumLineTotal_Total_2_1 m:type="Edm.Decimal">1272072.883926</d:SumLineTotal_Total_2_1>

<d:SumOrderQty_Total_2_1 m:type="Edm.Double">61932</d:SumOrderQty_Total_2_1>

<d:SumLineTotal_Total_2_2 m:type="Edm.Decimal">109846381.399888</d:SumLineTotal_Total_2_2>

<d:SumOrderQty_Total_2_2 m:type="Edm.Double">274914</d:SumOrderQty_Total_2_2></m:properties></content>

</entry>

Работа с потоками данныхWorking with Data Feeds

Все потоки данных, формируемые отчетом, включают элементы отчета, находящиеся в области видимости родительского элемента области данных, породившей потоки данных.All data feeds generated by the report include the report items that are in scope of the parent of the data region that generate the data feeds. .. Представьте, что отчет содержит несколько таблиц и одну диаграмму.Imagine a report that has several tables and a chart. Текстовые поля в теле отчета содержат описания каждой области данных.Text boxes in the report body provides descriptive text of each data region. Каждая запись в каждом потоке данных, формируемом отчетом, включает значение такого текстового поля.Every entry in every data feed that the report generates includes the value of the text box. Например, если задан текст «Диаграмма отображает средние ежемесячные продажи по региону продаж», то этот текст будет включен в каждую строку всех трех потоков данных.For example, if the text is "Chart displays monthly sales averages by sales region", all three data feeds would include this text on each row.

Если макет отчета содержит иерархические отношения между данными, например, вложенные области данных, эти отношения будут включены в плоский набор строк данных отчета.If the report layout includes hierarchical data relationships, such as nested data regions, those relationships are included in the flattened rowset of report data.

Строки данных для вложенных областей данных как правило очень длинны, особенно если вложенные таблицы и матрицы включают группы и итоговые значения.The data rows for nested data regions are typically wide, especially if the nested tables and matrices include groups and totals. Может оказаться полезным экспортировать отчет в поток данных и просмотреть этот поток данных для проверки корректности формирования данных.You might find it useful to export the report to a data feed and view the data feed to verify that the data generated is what you expected.

Когда модуль подготовки отчетов Atom создает сервисный документ Atom, для потока данных создается уникальный идентификатор, который упоминается в URL-адресе для доступа к содержимому потока данных.When the Atom rendering extension creates the Atom service document, a unique identifier is created for the data feed and you use the identifier in the URL to view the content of the data feed. Образец сервисного документа Atom, показанный выше, включает URL-адрес https://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1.The sample Atom service document, shown above, includes the URL https://ServerName/ReportServer?%2fProduct+Sales+Summary&rs%3aCommand=Render&rs%3aFormat=ATOM&rc%3aDataFeed=xAx0x1. Этот URL-адрес идентифицирует отчет (Product Sales Summary), формат подготовки отчета Atom (ATOM) и название потока данных (xAx0x1).The URL identifies the report (Product Sales Summary), the Atom rendering format (ATOM), and the name of the data feed (xAx0x1).

Имена элементов отчета по умолчанию совпадают с именами элементов языка определения отчетов (RDL) для элементов отчета, поэтому зачастую они неинтуитивны и трудны для запоминания.Report item names default to the report definition language (RDL) element names of the report items and often they are not intuitive or easy to remember. Например, первая матрица, помещенная в отчет, будет по умолчанию названа Tablix 1.For example, the default name of the first matrix placed in a report is Tablix 1. Потоки данных также будут использовать эти имена.The data feeds use these names.

Для упрощения работы с веб-каналом данных можно воспользоваться свойством DataElementName области данных для выбора понятных имен.To make the data feed easier to work with, you can use the DataElementName property of the data region to provide friendly names. Если свойству DataElementName задано значение, его же будет использовать и подэлемент веб-канала данных <d> вместо имени области данных по умолчанию.If you provide a value for DataElementName the data feed subelement <d> will use is it instead of the default data region name. Например, если по умолчанию области данных имеют имя Tablix1, а свойству DataElementName задано значение "SalesByTerritoryYear", то <d> веб-канала данных использует значение "SalesByTerritoryYear".For example, if the default name of a data regions is Tablix1 and DataElementName set SalesByTerritoryYear then the <d> in the data feed uses SalesByTerritoryYear. Если области данных содержат два потока данных (как в случае с матричным отчетом, описанным выше), потоки данных будут иметь имена SalesByTerritoryYear _Territory и SalesByTerritoryYear _Year.If the data regions has two data feeds like the matrix report described above, the names used in the data feeds are SalesByTerritoryYear _Territory and SalesByTerritoryYear _Year.

Если сравнить данные каждого из отчетов с данными потока данных, можно заметить определенные отличия.If you compare the data shown on the report and the data in the data feed, you might notice some differences. Отчеты часто отображают отформатированные числовые значения и значения даты/времени, в то время как потоки данных содержат неформатированные данные.Reports often shows formatted numeric and time/date data whereas the data feed contains unformatted data.

Поток данных сохраняется в файле с расширением ATOM.A data feed is saved with the .atom file name extension. Для просмотра структуры и содержимого такого файла можно использовать любой редактор текста или XML, например, «Блокнот » или XML Editor.You can use a text or XML editor such as Notepad or XML Editor to view the file structure and content.

Выравнивание данных отчетаFlattening Report Data

Модуль Atom представляет данные отчета в виде плоских наборов строк в формате XML.The Atom renderer provides report data as flattened rowsets in an XML format. Правила выравнивания таблиц данных совпадают с правилами, которые использует модуль подготовки отчетов в формате CSV, со следующими исключениями.The rules for flattening data tables are the same to those of the CSV renderer with a few exceptions:

  • Элементы в области видимости выравниваются до детального уровня.Items in scope are flattened to the detail level. В отличие от модуля подготовки отчетов в формате CSV, текстовые поля верхнего уровня появляются в каждой записи потока данных.Unlike the CSV renderer, the text boxes at the top level appear in each entry written to the data feed.

  • Значения параметров отчета включаются в каждую выходную строку.Report parameter values are rendered on each row of the output.

    Иерархические и группированные данные должны быть переведены в плоский формат, чтобы их можно было представить в формате модуля Atom.Hierarchical and grouped data must be flattened in order to be represented in the Atom-compliant format. Модуль подготовки отчетов делает отчет плоским, преобразуя его в древовидную структуру, отображающую вложенные группы области данных.The rendering extension flattens the report into a tree structure that represents the nested groups within the data region. Формирование плоского отчета происходит следующим образом.To flatten the report:

  • Сначала делается плоской иерархия строк, затем — иерархия столбцов.A row hierarchy is flattened before a column hierarchy.

  • Сначала в потоке данных отображаются элементы иерархии строк, затем элементы иерархии столбцов.Members of the row hierarchy are rendered to the data feed before members of the column hierarchy.

  • Столбцы упорядочены следующим образом: текстовые поля в тексте отчета — слева направо, сверху вниз, а затем области данных — слева направо, сверху вниз.Columns are ordered as follows: text boxes in body order left-to-right, top-to-bottom followed by data regions ordered left-to-right, top-to-bottom.

  • В пределах области данных столбцы упорядочены следующим образом: элементы углов, элементы иерархии строк, элементы иерархии столбцов, а затем ячейки.Within a data region, the columns are ordered as follows: corner members, row hierarchy members, column hierarchy members, and then cells.

  • Одноранговые области данных — это области данных или динамические группы, относящиеся к одной и той же области данных или имеющие одного динамического предка.Peer data regions are data regions or dynamic groups that share a common data region or dynamic ancestor. Одноранговые данные можно определить по разветвлениям уплощенного дерева.Peer data is identified by branching of the flattened tree.

    Дополнительные сведения см. в разделе Таблицы, матрицы и списки (построитель отчетов и службы SSRS).For more information, see Tables, Matrices, and Lists (Report Builder and SSRS).

Правила подготовки отчетов модулем AtomAtom Rendering Rules

Модуль подготовки отчетов Atom игнорирует следующие сведения при подготовке потоков данных.The Atom rendering extension ignores the following information when rendering a data feed:

  • Форматирование и макетFormatting and layout

  • Верхний колонтитул страницыPage header

  • Нижний колонтитул страницыPage footer

  • Пользовательские элементы отчетаCustom report items

  • ПрямоугольникиRectangles

  • ЛинииLines

  • ИзображенияImages

  • Автоматические подытогиAutomatic subtotals

    Остальные элементы отчета сортируются сверху вниз, затем слева направо.The remaining report items are sorted, from top to bottom, and then left to right. Каждый элемент присваивается столбцу.Each item is then rendered to a column. Если отчет имеет вложенные элементы данных, такие как списки или таблицы, родительские элементы повторяются в каждой строке.If the report has nested data items like lists or tables, the parent items are repeated on each row.

    В следующей таблице описывается, как выглядят подготовленные к просмотру элементы отчета.The following table indicates the appearance of report items when rendered:

ЭлементItem Поведение при подготовке к просмотруRendering behavior
ТаблицаTable Подготовка путем разворачивания таблицы и создания строки и столбца для каждой строки и столбца на самом низком уровне детализации.Renders by expanding the table and creating a row and column for each row and column at the lowest level of detail. Строки и столбцы подытогов не имеют заголовков строки или столбца.Subtotal rows and columns do not have column or row headings. Детализированные отчеты не поддерживаются.Drillthrough reports are not supported.
МатрицаMatrix Подготовка с развертыванием таблицы и созданием строки и столбца для каждой строки и столбца на самом низком уровне детализации.Renders by expanding the matrix and creating a row and column for each row and column at the lowest level of detail. Строки и столбцы подытогов не имеют заголовков строки или столбца.Subtotal rows and columns do not have column or row headings.
СписокList Подготовка записи для каждой отдельной строки или экземпляра в списке.Renders a record for each detail row or instance in the list.
ПодотчетSubreport Родительский элемент повторяется для каждого экземпляра содержимого.The parent item is repeated for each instance of the contents.
ДиаграммаChart Подготовка записи со всеми метками диаграммы для каждого значения диаграммы.Renders a record with all chart labels for each chart value. Метки для рядов и категорий в иерархиях приводятся к плоскому формату и включаются в строку для значения диаграммы.Labels from series and categories in hierarchies are flattened and included in the row for a chart value.
ГистограммаData bar Отображается как диаграмма.Renders like a chart. Как правило, гистограмма не содержит иерархии или метки.Typically, a data bar does not include hierarchies or labels.
СпарклайнSparkline Отображается как диаграмма.Renders like a chart. Как правило, спарклайн не содержит иерархии или метки.Typically, a sparkline does not include hierarchies or labels.
ДатчикGauge Подготавливает единственную запись с минимальным и максимальным значениями линейной шкалы, начальным и конечным значениями диапазона и значением указателя.Renders as a single record with the minimum and maximum values of the linear scale, start and end values of the range, and the value of the pointer.
ИндикаторIndicator Отображается как единственная запись с названием активного состояния, состояний доступности и значений данных.Renders as a single record with the active state name, available states, and the data value.
СхемаMap Создается поток данных для каждой области данных карты.Generates a data feed for each map data region. Если для одной области карты используется несколько слоев карты, то они все включаются в поток данных.If multiple map layers use the same data region, the data feed includes all of them. Поток данных включает запись с метками и значениями для всех элементов карты слоя карты.The data feed includes a record with the labels and values for each map member of the map layer.

Настройки сведений об устройствеDevice Information Settings

Можно изменить некоторые параметры по умолчанию для этого модуля подготовки отчетов, включая используемую схему кодировки.You can change some default settings for this renderer, including the encoding schema to use. Дополнительные сведения см. в разделе ATOM Device Information Settings.For more information, see ATOM Device Information Settings.

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

Экспорт в CSV-файл Exporting to a CSV File
Экспорт отчетовExport Reports

Остались вопросы?More questions? Посетите форум служб Reporting Services.Try asking the Reporting Services forum