Бэнд-ориентированность
Основной и наиболее часто используемый компонент в процессе создания отчетов – это Секция, или Бэнд. Движок генератора отчётов является бэнд-ориентированным. Одна из главных особенностей движка заключается в том, что он оптимизирован для работы с бэндами, которые расположены прямо на странице. Особенно это касается отчётов со связями. Если бэнды будут вложены друг в друга, то скорость рендеринга документа будет ниже. Чем больше вложенностей – тем медленнее может быть рендеринг отчёта. Ещё больше это будет заметно при увеличении количества вложенных данных.Пример отчета
Мы подготовили простой Master-Detail отчет в двух вариантах:- в первом все бэнды расположены прямо на странице;
- во втором – detail-бэнд вложен в master.
Все свойства компонентов отчётов установлены таким образом, чтобы на выходе получались полностью одинаковые документы. Используется тестовая база данных Northwind с небольшим количеством данных. Выходной документ содержит 137 страниц со средним наполнением информацией. Результат сравнения - скорость рендеринга первого отчета выше на 15%. Если увеличивать количестве вложенных бэндов или количество вложенных данных, разница в скорости будет ещё больше. Обратите внимание!
Ещё одна особенность нашего движка обработки данных состоит в том, что большинство свойств, имя которых начинается с Keep (например, KeepHeaderTogether и KeepFooterTogether) работают только для бэндов, которые лежат прямо на странице.