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


Обработчик отчетов

Обработчик отчетов — внутренний компонент экземпляра сервера отчетов, который обрабатывает отчеты, а также модели отчетов, используемые для составления нерегламентированных отчетов.

Общие сведения об обработке отчетов

Обработка отчетов описывает последовательность шагов обработки, которые преобразуют статические инструкции внутри определения отчета в готовый для просмотра отчет в окончательном формате презентации. На следующей диаграмме приведены этапы и элементы обработки отчетов.

Диаграмма обработки отчета

диаграмма обработки отчета

При доступе к отчету по запросу либо в процессе принудительной доставки сервер отчетов соответственно выполняет его полную обработку либо возвращает предварительно обработанный отчет в промежуточном формате для последующего просмотра в указанном формате. Настройки выполнения отчета определяют получаемый результат. Если администратор сервера отчетов указывает, что доступ к отчету будет осуществляться из кэша или моментального снимка, отчет в промежуточном формате будет получен из базы данных сервера отчетов и подготовлен к просмотру. В противном случае выполняются все этапы обработки.

Запросы для обработки отчетов

Обработчик отчетов обрабатывает следующие запросы.

  • Запрос для отчета по требованию. При открытии пользователем отчета, настроенного для запуска по требованию, на сервере отчетов инициируется его обработка. Обработчик отчетов получает определение отчета, посылает модулю обработки данных запрос на данные, соединяет определение отчета с данными и передает их модулю подготовки отчета, который выдает пользователю отчет, готовый для просмотра. Обработка отчетов по требованию также выполняется в ответ на действия пользователя в отчете на основе модели. Пользователь, который исследует путь к данным в отчете на основе модели, запускает последовательность запросов к временным отчетам с дополнительной информацией.

  • Запрос для отчета из кэша. Обработка отчетов из кэша является разновидностью обработки отчета по требованию, выполняемой в веб-службе. При открытии пользователем отчета, настроенного для запуска из кэша, инициируется обработка отчета, если срок действия кэшированной копии истек. В этом случае отчет повторно обрабатывается прежде, чем он будет вновь добавлен в кэш, а затем направляется в браузер пользователя.

  • Запрос из обработчика планирования и доставки. Запланированная обработка отчетов инициируется сервером отчетов и выполняется в фоновом режиме. Весь принудительной доступ к обработке и доставке отчетов производится через расписания и события, обрабатываемые компонентом «Обработчик планирования и доставки» сервера отчетов. Когда получен запрос, обработчик отчетов получает определение отчета, отправляет модулю обработки данных запрос на данные, соединяет определение отчета с данными и сохраняет скомпилированный отчет в базе данных сервера отчетов.

Этапы обработки отчетов

Во время выполнения отчета сервер отчетов обрабатывает отчет в три этапа: обработка отчета, обработка данных и подготовка отчета к просмотру. Обработка данных и отчета выполняется на этапе определения отчета, в результате чего получается отчет в промежуточном формате. Отчеты в промежуточном формате впоследствии подготавливаются для просмотра в определенном формате.

Получение определения отчета

Обработка отчета начинается с определения опубликованного отчета. Определение отчета содержит один или несколько запросов, сведения о макете и ссылки или выражения кода. Обработчик отчетов получает из базы данных сервера отчетов определение отчета, инициализирует параметры, вычисляет значения выражений в переменных и выполняет другие предварительные действия по подготовке отчета к данным. Затем модуль обработки данных подключается к источнику данных и получает из него данные.

Обработка данных

Обработка данных выполняется на сервере базы данных. Если отчет получает файлы статических данных или XML-документы, то обработка данных может быть ограничена получением этих файлов и возвращением данных в сервер отчетов.

Объединение данных и макета в промежуточном формате

Возвращенные данные объединяются со сведениями о макете в определении отчета, чтобы построить отчет в промежуточном формате, который можно сохранить для быстрого получения или направить в модуль подготовки отчетов к просмотру, который преобразует его в тот формат, в котором его увидит пользователь. Данные обрабатываются построчно для каждого раздела. Разделы включают верхний и нижний колонтитулы, верхний и нижний колонтитулы групп и подробности. На этой стадии обрабатываются также выражения и агрегатные функции.

Отчет, настроенный для выполнения в виде моментальных снимков или сохраненный в журнале отчетов, всегда сохраняется в промежуточном формате, который включает данные и сведения о макете, действительные для отчета на время сохранения промежуточного формата.

Сервер отчетов может использовать этот промежуточный формат в нескольких случаях. Кэширование, моментальные снимки и журнал отчета — все эти функции используют отчеты, сохраненные в промежуточном формате. Промежуточный формат является переносимым. Его можно подготовить к просмотру в любом формате экспорта, поддерживаемом и развернутом на сервере отчетов.

ПримечаниеПримечание

Промежуточный формат является переносимым. Для работы с отчетом в этом формате в пользовательском приложении необходимо использовать программные интерфейсы для создания или получения моментальных снимков.

Подготовка отчета к просмотру

После того как отчет преобразован в промежуточный формат, отчет можно подготовить к просмотру в формате презентации. Подготовленный к просмотру отчет компилируется в виде сборки среды CLR и выполняется на сервере отчетов.

На стадии подготовки отчета модуль подготовки отчета разбивает отчет на страницы и выполняет обработку выражений, которые не могут быть вычислены на стадии выполнения. Затем отчет готовится к просмотру в формате, определяемом устройством отображения.

Обработка моделей и отчеты с дополнительной информацией

В качестве интерфейсов доступа к источникам данных отчеты могут использовать модели отчетов. Модели определяют метаданные и содержат ссылки на общие источники данных, определяющие подключение к данным. Обработка модели производится на сервере отчетов, когда пользователь выполняет следующие действия.

  • Просмотр модели в построителе отчетов.

  • Запрос данных модели при создании отчета в построителе отчетов.

  • Перемещение по отчетам с дополнительной информацией, сохраненным на сервере отчетов.

Обработка отчетов с дополнительной информацией производится аналогично определениям отчетов, за исключением того, что такие отчеты могут формироваться автоматически из моделей, а не из определений отчетов, опубликованных на сервере. Для получения интересующих данных обработка данных инициируется через модель.