* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Создание групп
19 февраля 2009
В 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 обнуляется после печати каждой группы.