Иллюстрированный самоучитель по Delphi 7 для профессионалов

Агрегаты. Объекты-агрегаты.

Рассмотрим свойства класса TAggregate.

Имя агрегата содержится в свойстве:

property AggregateName: string;

…которое может быть использовано при отображении агрегата в визуальных компонентах.

Вычисляемое выражение с применением агрегатных функций должно находиться в свойстве:

property Expression: String;

Например, для таблицы COUNTRY.DB из демонстрационной базы данных Delphi можно вычислять общую площадь государств Северной и Южной Америки (площадь государства содержится в поле Area):

ClientDataSet.Aggregates[Somelndex].Expression: = 'SUM(Area);

Вычислением агрегата управляет свойство:

property Active: Boolean;

…а вычисленное значение возвращает функция:

function Value: Variant;

Если пользователь редактирует набор данных, то для всех включенных агрегатов (Active = True) возвращаемое значение автоматически пересчитывается.

Например, после сохранения изменений в наборе данных можно визуализировать новое значение агрегата:

SomeLabel.Caption: = ClientDataSet.Aggregates[0].AggregateName;
SomeEdit.Text: = ClientDataSet.Aggregates[0].Value;

Для проверки активности агрегата, помимо проверки значения свойства Active, можно также использовать свойство:

property InUse: Boolean;

Если оно возвращает значение True – вычисляемое выражение агрегата рассчитывается.

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

property Visible: Boolean;

Для того чтобы снизить вычислительную нагрузку на набор данных, можно отключить все агрегаты одновременно. Для этого свойству:

property AggregatesActive: Boolean;

…необходимо присвоить значение False.

Если же AggregatesActive = True, вычисляются только активные агрегаты, для которых свойство Active имеет значение True.

Если вам необходимо использовать все активные агрегаты, то вместо их последовательного перебора с проверкой свойства Active можно использовать свойство:

property ActiveAggs[Index: Integer]: TList;

…компонента TClientDataSet, которое представляет собой список активных агрегатов.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.