Модель формирования отчета

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

Crystal Report выполняет формирование отчёта в три этапа, которым могут предшествовать некоторые подготовительные действия.

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

­ чтение записей с применением сортировки и фильтрации записей базы дан­ных, если это возможно на данном шаге;

­ вычисление формул со ссылками на поля базы данных, не использующих ито­говые значения;

­ выполнение фильтрации записей по установленному критерию; сортировка, группировка и подсчет итогов в каждой труппе;

­ генерация кросс-таблиц;

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

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

На втором этапе Crystal Report выполняет требуемое форматирование данных на страницах, осуществляя следующие действия:

­ выбор поля группировки по заданному фильтру;

­ вычисление полей нарастающих итогов;

­ вычисление значений формул, использующих итоги;

­ создание диаграмм и карт;

­ создание подчиненных отчетов;

­ генерация страниц отчета по требованию.

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

В процессе оформления страниц отчета выполняет следующее:

­ применяет формулы фильтрации к группам;

­ вычисляет нарастающие итоги;

­ вычисляет формулы, отнесенные к этапу WhileReadingRecords. Такие формулы, содержащие ссылки на промежуточные итоги или агрегатные функции, также называют формулами PrintTime. В момент генерации отчета, со­ответствующего WhileReadingRecords, выполняются следующие действия:

­ создание диаграмм и карт;

­ создание подчиненных отчетов;

­ генерация страниц по требованию.

Существуют следующие мастера создания отчетов

­ Standard –наиболее общий из мастеров, вкладки диалогового окна которого характерны и для других мастеров. Они позволяют выбрать источник данных, связать таблицы в базе данных, добавить требуемые поля и определить характеристики группирования, подведения итогов и сортировки на основе заданных пользователем критериев. Вкладка «Style» содержит варианты предопределенных структур отчетов, которые можно использовать при его построении, чтобы добиться его компактности.

­ Form Letter – отчет в виде простого списка, в котором необязательны итоги;

­ Form – отчет, у которого в качестве фона может использоваться графический рисунок;

­ Cross – Tab –это таблица с группировкой значений в двух направлениях: по горизонтальным строкам и вертикальным столбцам, на пересечении которых рассчитаны итоги по этим группам. Кроме того, таблица может включать общие итоги по строкам и столбцам.

­ Subreport – отчет, в который включены "дочерние" отчеты, причем записи в "дочернем" отчете могут быть связаны с данными основного отчета, а могут быть и не зависимыми от них;

­ Mail Label – эксперт "почтовых наклеек", который формирует отчет в виде последовательности бланков с данными (в одну или несколько колонок);

­ Следующие два вида шаблонов предназначены для создания отчетов, предназначенных для просмотра в электронном виде (хотя и для них имеется возможность печати):

­ Drill Down – «раскрывающийся отчет», который в исходном виде содержит только итоговые значения, но с помощью двойного щелчка на соответствующем значении итогов раскрывается секция данных (точно так же ее можно скрыть);

OLAP – (online analytical processing), средство создания многомерных отчетов для сложного анализа данных. При создании отчета на базе OLAP-данных в Seagate Crystal Reports создается таблица, похожая на Cross-Tab отчет, но имеющая большую размерность. Можно создать один многомерный OLAP-отчет, либо несколько плоских таблиц отображающих тот же самый OLAP-отчет.

Report Header содержит объекты, которые будут напечатаны в начале отчета (формулы, размещенные в этой области, вычисляются один раз в начале данного отчета; диаграммы и кросс-таблицы включают полные данные отчета);
Page Header содержит объекты, которые печатаются в начале каждой страницы отчета (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз в начале каждой новой страницы);

Group Header содержит объекты, которые печатаются в начале каждой новой группы (диаграммы и кросс-таблицы при этом включают данные только этой группы; формулы, размещенные в этой области, вычисляются один раз в начале каждой новой группы);

Details Area содержит объекты, которые выводятся на печать для каждой новой записи базы данных (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз для каждой записи);

Group Footer содержит объекты, которые печатаются в конце каждой группы (диаграммы и кросс-таблицы при этом включают данные только этой группы; формулы, размещенные в этой области, вычисляются один раз в конце каждой группы);

Report Footer содержит объекты, которые будут напечатаны в конце отчета (формулы, размещенные в этой области, вычисляются один раз в самом конце отчета; диаграммы и кросс-таблицы включают полные данные отчета);

Page Footer содержит объекты, которые печатаются в конце каждой страницы отчета (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз в конце каждой страницы).

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: