Иногда достаточно изменить значение одного свойства, чтобы значительно увеличить скорость отрисовки отчета. При работе с шаблоном отчета словарь данных не содержит реальных данных. Данные в словаре располагаются только как описание структуры данных. Выполнение всех запросов и передача данных из хранилища осуществляется в момент формирования отчета. В это время вся структура словаря заполняется реальными данными. Другими словами, если в словаре создано 200 источников данных, то фактические данные переносятся из хранилища во все эти источники. Чем больше данных необходимо передать из хранилища в словарь, тем больше времени занимает процесс рендеринга отчета. Однако не всегда в отчете используются все источники данных. Чтобы значительно сократить время рендеринга отчета, получающего только реальные данные для источников данных, используемых в отчете, необходимо установить для свойства отчета Получить только используемые данные значение true.
Рассмотрим пример. Например, используется база данных MS SQL, содержащая таблицы данных, хранимые процедуры и представления. На рисунке ниже показана структура данных словаря:
Каждая таблица содержит данные от одного до множества столбцов данных, по крайней мере, с одной строкой данных. Например, в отчете будет использоваться только источник данных CustomerCustomerDemo.
- Для свойства Получить только используемые данные задано значение false.
В этом случае при рендеринге отчета будут передаваться данные из БД для каждой таблицы в словарь данных, а затем словарь в сам отчет. Другими словами, каждая таблица будет заполнена фактическими данными. Затем генератор отчетов выбирает данные, используемые в отчете, и отображает их в структурированном виде. Время отрисовки отчета зависит от скорости передачи данных и размера данных. Чем быстрее будут передаваться данные, тем быстрее будет сформирован отчет. На рисунке ниже схематично показана передача данных, если для свойства Получить только используемые данные установлено значение false:
2. Для свойства Получить только Используемые Данные установлено значение true.
В этом случае при построении отчета генератор отчетов будет анализировать структуру отчета и передавать данные только для таблиц, используемых в этом отчете. В текущем примере данные будут переданы только для таблицы CustomerCustomerDemo. Время рендеринга отчета в этом случае будет намного меньше. Если отчет будет использоваться более чем одной таблицей, данные будут переданы только в несколько таблиц. На рисунке ниже схематично показана передача данных, если для свойства Получить только используемые данные установлено значение true:
Информация. Альтернативным методом является удаление неиспользуемых источников данных из словаря данных. Однако иногда необходимо, чтобы присутствовала вся конструкция. Например, для дальнейшего развития отчета или, скажем, когда один и тот же словарь используется для множества отчетов.