powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EhLib - Группировка - вычисления в футере
3 сообщений из 3, страница 1 из 1
EhLib - Группировка - вычисления в футере
    #38040384
jserrg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую EhLib 6.0 с TMEMTable-ом
В гриде есть группировка с агрегатными суммами.

Хочу в последней колонке грида посчитать данные на основе футеров других колонок. Что-то типа Calculated Field только в футере TDBGridEh-a

Пытался использовать событие грида:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TBalanceSheetFrame.gr1DataGroupFooterAggregateValue(
  Grid: TCustomDBGridEh; Column: TColumnEh; GroupFooter: TGridDataGroupFooterEh;
  FooterColumnItem: TGridDataGroupFooterColumnItemEh; var AValue: Variant;
  Node: TGroupDataTreeNodeEh; var Processed: Boolean);
begin
  if (Column.Name='Column_16_Save') then begin
    AValue:=GroupFooter.FootersCollection[5].di // DisplayName;// AggrValue(Node);
//    DisplayValue:=Grid.DataGrouping.Footers[0].ColumnItems[7].;
//    AValue:=Grid.DataGrouping.Footers[0].ColumnItems[7].FieldName;
//    AValue:=Grid.DataGrouping.Footers[0].ColumnItems[7].;
//    AValue:=GroupFooter.;
    Processed:=true;
end;


Так же пытался работать с OnDataGroupFooterDisplayText...

Нифига не получается дойти до данных футера.

Как???

Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
...
Рейтинг: 0 / 0
EhLib - Группировка - вычисления в футере
    #38042131
X_ginger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
function GetFooterValue(Row: Integer; Column: TColumnEh): String;
Row - строка ФУТЕРА. Нумерация с 0. Только это в виде строки будет, возможно, с разделителями.

Добраться до футера колонки - Footer := Column.UsedFooter(Row);
У футера есть Value, но это строка. Есть SumValue, но если ValueType in [fvtSum..fvtCount].
Через футер можно добраться непосредственно до поля через его(поля) имя.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
EhLib - Группировка - вычисления в футере
    #39459206
YulyaDijD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работающий пример. Как в группировке столбца 6 рассчитать % столбца 5 от столбца 4 (индекс начинается с 0).
Свойства:
Код: pascal
1.
  GridD.DataGrouping.Footers[0].ColumnItems[6].ValueType:= gfvStaticTextEh;


Обработка:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TForm1.GridDDataGroupFooterAggregateValue(Grid: TCustomDBGridEh;
  Column: TColumnEh; GroupFooter: TGridDataGroupFooterEh;
  FooterColumnItem: TGridDataGroupFooterColumnItemEh; var AValue: Variant;
  Node: TGroupDataTreeNodeEh; var Processed: Boolean);
begin
  if Column.Index=6 then
  begin
    if (Node.Level=2) or (Node.Level=3) then //только те уровни, где нужно считать %
    begin
      if (Node.Parent.FooterItems[0].FooterValues[4]<>null) and (Node.Parent.FooterItems[0].FooterValues[4]<>0) then
        AValue:= FloatToStr(RoundTo(Node.Parent.FooterItems[0].FooterValues[5]*100/Node.Parent.FooterItems[0].FooterValues[4], -2)) + '%'
      else
        AValue:= 'None';
      Processed:= true;
    end;
  end;
end;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / EhLib - Группировка - вычисления в футере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]