
- •Лабораторная работа №5 Составление отчетов
- •Скомпилируйте приложение
- •Скомпилируйте приложение.
- •1. Первый отчет
- •1.1. Простой отчет
- •1.2. Другие типы секций
- •1.3. Получение данных
- •1.4. Фильтрация и сортировка данных
- •1.5. Добавление текста и полей данных
- •2. Создание отчетов
- •2.1. Разметка, единицы измерения и масштаб
- •2.2. Размер бумаги и границы
- •2.3. Выбор шрифта
- •2.4. Заголовок отчета и описание
- •2.5. Добавление секций
- •2.6. Размеры секций
- •2.8. Выключение секций
- •2.9. Добавление печатных компонент к отчету
- •2.2.10.4. Размер
- •2.2.10.5. Стиль шрифта и цвет текста
- •2.2.10.6. Выравнивание
- •2.2.10.7. Выравнивание по секции
- •2.2.10.8. Цвет фона и прозрачность
- •2.2.10.9. Рамки
- •2.2.10.10. Разрешение и запрет
- •2.2.10.11. Печать статического текста
- •2.11. Печать из полей базы данных
- •2.2.11.1. Форматирование вывода
- •2.2.11.2. Печать мемо полей
- •2.2.11.3. Печать простых графических фигур
- •2.12. Печать графики
- •2.2.12.1. Статические изображения
- •2.2.12.2. Изображения, хранящие в таблицах
- •2.13. Печать RichText полей
- •3. Использование выражений
- •3.1. Создание выражений
- •2.3.1.1. Использование полей базы данных в выражениях
- •2.3.1.2. Использование строк в выражениях
- •2.3.1.3. Примеры выражений
- •3.2. Использование выражений
- •3.3. Размер стека
- •4. Создание групп
4. Создание групп
В QuickReport вы можете создавать отчеты с группами очень просто и эффективно. Группы могут быть вложены на неограниченную величину, и если вы свяжете несколько наборов данных в вашем отчете, то вы сможете группировать по любым наборам данных DataSet.
Компонент TQRGroup размещен на палитре компонент страница QuickReport. Когда это помещается в отчет, то это выглядит как секция. Данная секция имеет заголовок группы. Каждый раз, когда группа заканчивается данный заголовок печатается. В дополнение вы можете также добавить подвал для группы. Для этого выберите компонент TQRBand из палитры и поместите его в отчет. Свяжите свойство TQRGroup.FooterBand с новой созданной секцией.
Секция TQRGroup имеет свойство Master, которое автоматически связывается с главным QuickReport компонентом. Это появляется выше секции данных (Detail) в отчете. А корректно связанная группа должна появляться ниже секции данных.
Наиболее важное свойство TQRGroup после Master – это Expression. Введите любое допустимое выражение в инспекторе объектов. Группа заканчивается, когда результат выражения изменяется. Например, для таблицы customer с установленным индексом State + Company. Для печати заголовка группы каждый раз, когда штат изменяется, вы должны ввести State или Customer.State как выражение. Интерпретатор выражений найдет поле State и напечатает заголовок группы, перед каждым новом штатом. Присоединенный подвал группы после того, как будут напечатаны все заказчики из данного штата, удобно для подсчета заказчиков по каждому штату, объема продаж и т.д.
Вот пример образа отчета для получения списка заказчиков:
Для получения используется компонент TQuery со следующим запросом:
select * from customer order by state, company
Выражение группы просто State.
Примечание: в отчете используются два компонента TQRExpr. Первый помещен в заголовок группы и имеет следующее выражение:
if(State <> '', State, 'Unknown state')
Поскольку не все заказчики имеют указанный штат, в этом случае выражение возвращает фразу «неизвестный штат».
Второй TQRExpr размещен в подвале группы и имеет следующее выражение:
'Customers in ' + State + ' : ' + Str(Count)
Данное выражение печатает количество заказчиков в каждом штате. Свойство Master связано с компонентом TQuickRep и установлено свойство ResetAfterPrint, так что Count обнуляется после печати каждой группы. Ниже пример из просмотра отчета: