Delphi для профессионалов



 

Агрегатные поля


Агрегатные поля не входят в структуру полей набора данных, т. к. агрегатные функции подразумевают объединение записей таблицы для получения результата. Следовательно, значение агрегатного поля нельзя связать с какой-то одной записью, оно относится ко всем или группе записей.

Агрегатные поля не отображаются вместе со всеми полями в компонентах TDBGrid, в Редакторе полей они расположены в отдельном списке. Для представления значения агрегатного поля можно воспользоваться одним из компонентов отображения данных, который визуализирует значение одного поля (например, TDBText или TDBEdit) или свойствами самого поля:

LabelI.Caption := MyDataSetAGGRFIELDl.AsString;

Подробно вопросы создания агрегатных полей рассмотрены в гл. 13.

Класс TAggregateField предназначен для инкапсуляции свойств и методов агрегатных полей.

Его свойство

property Expression: string;

задает вычисляемое выражение.

Вычисление значения проводится только для тех агрегатных полей, свойство

property Active: Boolean;

которых имеет значение True.

Вычисление включенных свойством Active агрегатных полей выполняется только в том случае, если булевское свойство AggregatesActive клиентского компонента набора данных имеет значение True.

По умолчанию экземпляр класса TAggregateField создается со свойством Visible = False.