Страница 1 из 1
Не могу разобраться с группировкой...
Добавлено: 03 авг 2005, 09:04
Natalika
Добрго времени суток всем!
Пишу отчет (свой интерфейс), выкидываю его в ексел. В этом отчете куча итогов по пяти полям т.е. соответственно пять группировок...
Самой отслеживать изменение каждого поля и подсчитывать сумму как то не охота

В SDK вычитала что есть группировка из VIP.
Вот пример от туда....
_loop aTable
{
оператор1
groupby g1 : aTable f1
{
оператор2
groupby g2 : aTable f2
{
оператор3
}
оператор4
}
оператор5
}
Что то у меня не получается... компилятор ругается на GROUPBY.
Может кто знает как этим пользоваться... или что то нуно еще подключить...
Добавлено: 03 авг 2005, 11:26
san
А внизу написано:
Информация
Версия : Атлантис 5.03
Добавлено: 03 авг 2005, 11:45
Natalika
Добавлено: 03 авг 2005, 11:52
Goblin
как, как ?
Временная табла-аккумулятор и в ней группировку ...
Добавлено: 03 авг 2005, 12:14
Natalika
Goblin я прошу прошения... за свое незнание
Я то и формирую данные для отчета во временную талицу... И что мне дальше с ней делать??? как мне ее группировать???
Добавлено: 03 авг 2005, 12:15
san
С использованием временной таблицы. В 5.03 подозреваю что технология эта же, только делается за кадром.
Добавлено: 03 авг 2005, 12:17
san
Сделать у временной таблицы составной индекс = количеству уровней группировки.
Добавлено: 03 авг 2005, 12:37
san
Еще вариант на внешней выгрузке (order Name EXTERNAL by ....), в данном случае нет необходимости описывать временную таблицу. Драйвер сам сделает временную таблиц,у в выгрузит в нее все записи из логической таблицы и отсортирует. Опять же вариант сводится в врем таблице где данные расположены в нужном порядке.
Оработка простая, берем первую запись, запоминаем все поля которые участвуют в группировке.Делаем цикл по таблице, опять с первой записи. и первым делом проверяем не изменилось ли какое либо поле из тех что участвуют в группировке. Если изменилось выводим итоги по уровню.
типа
if pole1<>storepole1
{
printitog1;
storepole1:=pole1
}
if pole2<>storepole2
{
printitog2;
storepole2:=pole2
}
когда все записи таблицы обработаны выводим итоги по всем уровням.
Добавлено: 03 авг 2005, 13:01
Natalika
ну вот...
"Всю ночь гребли а лодку отвязать забыли..."
плохо что только так... пока можно... уууу как неудобно!
Добавлено: 03 авг 2005, 13:08
san
В форме INV_VED.FRM есть пример с group by.