Агрегаты. Объекты-агрегаты.
Наличие локального буфера данных позволяет компоненту TClientDataSet реализовать ряд дополнительных функций, основанных на использовании агрегатных функций применительно к полям всего набора данных, загруженного в локальный буфер.
К агрегатным функциям относятся:
- AVG – вычисляет среднее значение;
- COUNT – возвращает число записей;
- MIN – вычисляет минимальное значение;
- МАХ – вычисляет максимальное значение;
- SUM – вычисляет сумму.
Для их применения в компоненте TClientDataSet предусмотрены:
- индексированный список объектов, инкапсулирующих агрегатные выражения – агрегаты;
- агрегатные поля, обеспечивающие получение новых значений подобно вычисляемым полям, но с группированием записей на основе использования агрегатных функций.
Объекты-агрегаты
Для вычисления агрегатных выражений для всех записей набора данных используются объекты класса TAggregate. Индексированный список этих объектов содержится в свойстве:
property Aggregates: TAggregates;
…компонента TClientDataSet. Прямым предком класса TAggregates является класс TCollection, поэтому для него можно использовать все основные приемы работы с коллекциями (см. гл. 7).
Для создания нового агрегата необходимо щелкнуть на кнопке свойства в Инспекторе объектов и, в появившемся Редакторе агрегатов, выбрать пункт Add во всплывающем меню или щелкнуть на кнопке Add New (рис. 22.3).
Новый агрегат может быть добавлен и динамически:
var NewAgg: TAggregate; NewAgg: = ClientDataSet.Aggregates.Add;
Рис. 22.3. Редактор агрегатов компонента TClientDataSet