Delphi 3 и создание приложений баз данных


14.9. Группировки данных в отчете


Выше мы рассмотрели отчет, в котором информация об отпуске товаров из ТБД Rashod.DB со склада выводилась "как есть". Такое представление информации в отчете не всегда информативно. Пусть, например, в нашем случае требуется сгруппировать информацию по товарам.

Для группировки информации используется компонент TQRGroup. Его свойство Expression указывает выражение. В группу входят записи НД, удовлетворяющие условию выражения. При смене значения выражения происходит смена группы. Для каждой группы, если определены, выводятся заголовок группы и подвал группы. В качестве заголовка группы служит компонент TQRBand со значением свойства BandType, равным rbColumnHeader. В качестве подвала группы служит компонент TQRBand со значением свойства BandType, равным rbGroupFooter.

Свойство FooterBand компонента TQRGroup содержит ссылку на компонент подвала группы.

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

Пример.

Построим отчет о расходе товара со склада, в котором информация группируется по наименованию товара. Для этого определим набор данных отчета (компонент TTable, имя Table1). Установим у НД текущим индекс по полю Tovar (в свойстве Fieldlndex Names или IndexNawe). Разместим в отчете:

заголовок отчета - компонент TQRBand с именем QRBandl, свойство BandType = rb Title;

• заголовок столбцов - компонент TQRBand с именем QRBandS, свойство BandType = rbColumnHeader,

• группу - компонент TQRGroup с именем QRGroupl.

• область детальной информации - компонент TQRBand с именем QRBand2, свойство BandType = rbDetail;

подвал группы - компонент TQRBand с именем QRBand4, свойство BandType = rbGroupFooter.

В компоненте QRGroupl установим:

в свойство FooterBand значение QRBand4;

• в свойство Expression значение Table1.TOVAR, которое является формулой и строится в редакторе формул.

Поскольку свойство Expression не визуализирует значения выражения, необходимо разместить в группе компонент TQRExr (имя QRExrl) и определить значение его свойства Expression так, чтобы оно содержалоTable1.TOVAR.

В компоненте подвала группы QRBand4 будем подсчитывать сумму по полю Kolvo (сумму отпущенного конкретного товара). Для этого разместим в подвале группы компонент TQRExr (имя QRExr2) и определим значение его свойства Expression так, чтобы оно содержало формулу SUM(Table1.KOLVO).

В группе детальной информации разместим компоненты TQRDBText, связанные с полями Pokup и Kolvo НД. Заполним другие области отчета статическим текстом, как это показано на рис.14.13.

На рис 14.14 показан отчет в режиме предварительного просмотра На рис 14.15 показан подвал одной из групп - там выводится информация о суммарном расходе товара




- Начало -  - Назад -  - Вперед -