Строка состояния TDBGrid для агрегата столбцов

Получил сетку с некоторыми числовыми столбцами, и для каждого столбца необходимо реализовать агрегат (сумму или количество) и отобразить его в соответствующем столбце.

Я знаю, что некоторые пакеты (DevExpress или другие) уже реализованы "по умолчанию". Но есть способ реализовать это с помощью элементов управления по умолчанию или JVCL?


person DreadAngel    schedule 07.05.2012    source источник
comment
Когда вы упомянули JVCL, есть TJvDBGridFooter, что на самом деле может быть тем, что вы ищете. В нем опубликовано событие OnCalculate, однако я не знаю, как насчет изменения размера этого элемента управления. Вы ищете элемент управления, размер которого будет изменяться вместе со столбцами сетки?   -  person TLama    schedule 07.05.2012


Ответы (1)


Поскольку вы упомянули JEDI VCL, попробуйте взглянуть на TJvDBGridFooter. Это строка состояния для элемента управления TJvDBGrid.

  • отображаемый текст можно изменить в событии OnDisplayText
  • вы можете рассчитать агрегированные поля в событии OnCalculate
  • вы можете следить за прокруткой столбца сетки, изменять размер или вид панелей

Посмотрите демонстрационные проекты из папки ..\examples\JvUltimDBGrid JVCL, чтобы увидеть их в действии.

person TLama    schedule 07.05.2012
comment
Не могли бы вы рассказать мне, как выполнить общую сумму для поля и отобразить ее в нижнем колонтитуле. Этот пример не удовлетворяет мои потребности — я использую ClientDataset. - person DreadAngel; 08.05.2012
comment
Итак, вы нашли способ? По сути, речь идет о aggregate fields в наборе данных. Затем вы добавляете столбцы в коллекцию TJvDBGridFooter.Columns, устанавливаете их FieldName в эти агрегированные поля из подключенного набора данных, устанавливаете DisplayMask как Σ %d и в событии TJvDBGridFooter.OnCalculate заполняете параметр CalcValue значением из агрегированного поля. - person TLama; 08.05.2012