Разработка баз данных в Delphi. 11 Уроков

       

Группировки данных


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

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

 

Пример.

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

·        заголовок отчета – компонент TQRBand с именем QRBand1, свойство BandType=rbTitle;

·        заголовок столбцов – компонент TQRBand с именем QRBand2, свойство BandType=rbColumnHeader;

·        группу – компонент TQRGroup с именем QRGroup1;

·        область детальной информации – TQRBand с именем QRBand3, свойство BandType=rbDetail;

·        подвал группы – TQRBand с именем QRBand4, свойство BandType=rbGroupFooter;

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

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

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

Поскольку свойство Expression не визуализирует значения выражения, необходимо разместить в группе компонент TQRExpr (имя QRExpr1) и определить значение его свойства Expression
так, чтобы оно содержало Table1.TOVAR.
В компоненте подвала группы QRBand4 будем подсчитывать сумму по полю KOLVO (сумму отпущенного конкретного товара). Для этого разместим в подвале группы компонент TQRExpr (имя QRExpr2) и определить значение его свойства Expression так, чтобы оно содержало формулу SUM(Table1.TOVAR).
В группе детальной информации разместим компоненты TQRDBText, связанные с полями Pokup и Kolvo. Заполним области отчета статическим текстом, как это показано на рис.14.


Рис. 14. Макет отчета с группировкой по товару.

Рис. 15. Отчет с группировкой по товару в окне предварительного прсмотра.

Содержание раздела