Отчет с группированием данных
Простой отчет
Компоненты, размещаемые в полосе отчета
Полоса отчета
Является основным элементом отчета, где размещаются другие его компоненты.
Тип полосы определяется свойством BandType, принимающим значения вида:
· rbTitle – заголовок отчета, выводится один раз на первой странице под верхним колонтитулом, если он есть;
· rbPageHeader – верхний колонтитул, печатается в начале каждой страницы, содержит дату и/или номер страницы;
· rbDetail – данные записей набора данных;
· rbPageFooter – нижний колонтитул, печатается в начале каждой страницы, содержит дату и/или номер страницы;
· rbSummary – итог отчета, выводится в конце отчета, но выше нижнего колонтитула;
· rbGroupHeader – заголовок группы, выводится для каждой группы;
· rbColumnHeader – заголовки столбцов, печатаемые один раз на каждой странице над данными;
· и др.
В полосе отчета размещаются компоненты только страницы QReport. Другие компоненты можно разместить, но в отчет они не попадут. Можно разместить компонент на отчете, но вне полосы, тогда он будет печататься на каждой странице (например, картинка с логотипом фирмы).
Обычно используются следующие компоненты отчета:
· QRLabel – надпись с текстом, для полос данных обычно не используется;
· QRDBText – значение поля записи БД, обычно размещается в полосе данных;
· QRExpr – выражение, возможное с применением значений полей, обычно размещается в полосах данных и нижних колонтитулах;
· QRSysData – системная информация для итоговых полос и колонтитулов;
· QRImage – графическое изображение, используется в любой полосе;
· QRShape – геометрическая фигура, используется в любой полосе.
Представляет собой отчет на основе данных из одного набора данных и содержит сведения, которые выводятся в табличном виде без какой-либо дополнительной обработки.
Простой отчет может содержать следующие полосы:
· верхний колонтитул (rbPageHeader);
· заголовок отчета (rbTitle);
· заголовки столбцов (rbColumnHeader);
· данные (rbDetail);
· итог отчета (rbSummary);
· нижний колонтитул (rbPageFooter).
Выводимые в отчете данные можно группировать по определенному признаку. Для группирования записей отчета по определенному полю в наборе данных должен быть установлен текущий индекс, построенный по этому полю. Если индекс не установлен, то ошибки не возникает, но группирование выполняется неправильно.
Можно группировать данные, находящиеся в одном или в связанных наборах данных.
Для оформления группы используется компонент QRGroup, который автоматически размещается после заголовков столбцов, а в его свойстве "мастер" указывается компонент отчета.
В простом отчете с группированием данных вместо полосы данных надо использовать комбинацию компонентов в указанном порядке:
· QRGroup – полоса группы;
· QRBand – полоса данных;
· QRBand – полоса нижнего колонтитула.
Условие группировки определяется свойством Expression компонента QGroup. В полосе нижнего колонтитула обычно размещаются сводные данные о группе, например, суммарное значение.
Отчет для таблиц, связанных отношением "главный-подчиненный"
Выполняется для связанных наборов данных. Компоненты наборов данных можно разместить на форме отчета или на другой форме, с помощью которой пользователь управляет этими наборами данных. Основной частью отчета является комбинация:
· полосы данных QRBand (название Detail);
· полосы детализации QRSubDetail (название SubDetail).
Компонент QRSubDetail при помещении в отчет автоматически располагается после полосы данных. Полосы данных и детализации образуют центральную часть группы.
Для полосы данных в качестве набора данных устанавливается главный набор. В полосе данных обычно размещаются компоненты QRDBText, связанные с полями этого же набора, и компоненты QRLabel, текст которых является заголовками столбцов данных.
Для полосы детализации устанавливается подчиненный набор данных. В ней обычно располагаются компоненты QRDBText и QRExpr, с помощью которых выводятся значения полей записей подчиненного набора данных.
При необходимости для группы можно задать верхний и нижний колонтитулы и заголовок отчета.