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


Настройка ReportViewer для асинхронной подготовки отчетов

Чтобы настроить серверный веб-элемент управления ReportViewer для асинхронной подготовки к просмотру, необходимо задать режимы обработки и подготовки к просмотру. Режим подготовки к просмотру задается свойством AsyncRendering в элементе управления, а режим обработки задается свойством ProcessingMode. Сочетание этих двух свойств определяет порядок подготовки страниц ASP.NET к просмотру.

В следующей таблице описаны особенности работы элемента управления ReportViewer в различных режимах обработки и подготовки к просмотру.

Значение свойства Режим локальной обработки (класс LocalReport) Режим удаленной обработки (класс ServerReport)

AsyncRendering = True

  • Использует IFRAME

  • Без обратной передачи1

  • Синхронная обработка

  • Использует IFRAME

  • Без обратной передачи1

  • Асинхронная обработка

AsyncRendering = False

  • Встроенный HTML

  • Обратная передача

  • Синхронная обработка

  • Встроенный HTML

  • Обратная передача

  • Синхронная обработка

Если свойство AsyncRendering имеет значение True, обратная передача будет происходить, если подписаться на события навигации в коде, за исключением события детализации. Для этого события обратная передача будет выполняться независимо от подписки на события. Если это свойство имеет значение False, обратная передача будет выполняться независимо от наличия подписки на события.

Асинхронный режим

Если свойство AsyncRendering имеет значение True, элемент управления ReportViewer будет обрабатывать отчет в пределах IFRAME на странице. Использование IFRAME позволяет загружать остальную часть страницы без блокировки со стороны элемента управления ReportViewer.

И в локальном, и в удаленном режимах обработки для подготовки отчета к просмотру используется IFRAME. Однако ReportViewer по-разному готовит к просмотру индикатор выполнения, если он включен. Если отчет обрабатывается локально, индикатор выполнения для отчета не может готовиться к просмотру, пока не выполнена вся обработка. Если отчет обрабатывается удаленно, то индикатор выполнения (если он включен) отображается во время обработки отчета на сервере.

Вопросы использования XHTML и серверного веб-элемента управления ReportViewer.

Если настроить серверный веб-элемент управления ReportViewer на работу в асинхронном режиме в приложении, написанном на XHTML, необходимо выполнить определенные шаги, чтобы отобразить свойство элемента управления ReportViewer. Если в элементе управления ReportViewer используется относительная высота (например, если высота задается как процент от доступного места), элемент управления сворачивается до высоты в 0 точек. Это обусловлено используемым в XHTML способом подготовки к просмотру рамок и тегов DIV во вмещающих таблицах. Эту проблему можно избежать, выполнив одно из следующих действий.

  • Явным образом задайте высоту элемента управления ReportViewer, указав фактическое значение, а не процентное отношение.

  • Добавьте в тег <head> следующий параметр style: <style>html,body,form {height:100%}</style>. Для тегов HTML, body и form будет принудительно установлена максимальная высота, и в результате рамка, используемая в элементе управления ReportViewer, также увеличится до максимальной высоты, и элемент станет видимым на странице.

  • Удалите тип документа xhtml со страницы.

Синхронный режим

Если свойство AsyncRendering имеет значение False, ReportViewer будет готовить отчет к просмотру в виде встроенного HTML в пределах остальной части страницы. Поскольку HTML является встроенным, остальная часть страницы будет заблокирована во время обработки и подготовки к просмотру отчета.

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

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

См. также

Справочник

Свойства ReportViewer
ReportViewer

Понятия

Параметры файла web.config для ReportViewer
Серверный веб-элемент управления ReportViewer и соответствующий элемент управления Windows Forms
Настройка ReportViewer для локальной обработки
Настройка ReportViewer для удаленной обработки