Страница 2 из 2

Упорядочивать группы по значению агрегатной функции

Добавлено: 09 ноя 2009, 12:18
howdy
Дело в том, что отчеты создаются автоматическим образом в программе.
Для группировки и вычисления итогов используется бэнд заголовка группы.
Ваш способ потребует значительных и трудоемких изменений программы, создающей отчеты,
т.к он предполагает другой способ группировки.
Хотелось бы этого избежать.

Надеюсь на Ваше понимание.
Спасибо.

Упорядочивать группы по значению агрегатной функции

Добавлено: 10 ноя 2009, 09:35
Edward
Здравствуйте,

Да, такой метод возможен, но он требует предварительного расчета необходимых Вам значений, сохранения их в hash таблицу и использования своей функции, определенной в CodeTab для Вашего GroupHeader.

1) На закладке "Код" определите переменную типа HashTable, которая будет содержать пары Условие Группировки-Значение агрегатной функции. И понадобится функция, которая проанализирует эту hash таблицу и выдаст результат агрегатной функции в зависимости от входного значения для этой функции - аргумента этой функции.
2) Располагаете вначале отчета дополнительный GroupHeader и DataBand, оба нулевой высоты. В BeforePrint у DataBandа, устанавливаете обработчик для расчета сумм в соответствии с группировкой в HashTable.
3) После того как сформирована в 1) и 2) Hash таблица, можно использовать её значения в основном GroupHeader, который Вам необходимо добавить. Функция из пункта 1) может возвращать значения 1,2,3,... в зависимости от входного аргумента и таким образом быть использована для группировки.

Спасибо.