18.01.2005, 19:19 | #1 |
Снова балуюсь косаптой :)
|
Временные таблицы в отчетах
Есть такой таск. Люди хотят видеть некий отчет с вложенными группировками и подитогами (стандартный пример - остатки товара по складским аналитикам).
В Axapta этого можно добится, устанавливая у полей ветки Sorting запроса отчета свойства AutoHeader и AutoSum плюс добавляя в AutoDesignSpec поля суммирования и устанавливая у них свойство SumAll. Работает отлично, но только когда отчет смотрит в постоянную (не temporary) таблицу. В моем же случае "источник" - это temporary table, формируемая извне по некоему сложному алгоритму. Перекрыл метод fetch... данные отчет "засосал", но функциональность вложенных группировок и подитогов по ним работать при этом перестала :-( Так как сроки, по обыкновению, поджимают - сделал суперизвращенное решение: из временной таблицы данные копируются в постоянную, по этим данным формируется отчет, после чего данные из постоянной таблицы стираются :-)))) Вопрос к уважаемому All: как ГРАМОТНО сделать аксаптовский отчет с вложенными (3 штуки) группировками и подитогами по ним, основанный не на "постоянной" таблице. Знает ли кто соответствующий пример в стандартной функциональности?
__________________
Бесты и регарды! |
|
18.01.2005, 19:53 | #2 |
NavAx
|
Не совсем понял, зачем перекрывать fetch, если данные все равно закачиваются во временную таблицу?
__________________
Isn't it nice when things just work? |
|
18.01.2005, 20:26 | #3 |
Снова балуюсь косаптой :)
|
Ну как - чтобы получить собсно данные для отчета...
Чтобы заполнить временную таблицу данными, выводимыми в отчет - надо написать что-то вроде public boolean fetch() { ; TmpTable = Cls.getTmpTable(); while select TmpTable { this.send(TmpTable); } return true; } Если просто, скажем в Init, не перекрывая fetch-а написать public void init() { TmpTable = Cls.getTmpTable(); super(); } то сволочная аксапта пишет "отчет не содержит данных". А как только перекрываешь fetch - подгуппы и подитоги перестают работать, т.е. нуль внимания на свойства AutoHeader и AutoSum в запросе отчета :-( Или может я неправильно делаю вообще?
__________________
Бесты и регарды! |
|
19.01.2005, 09:26 | #4 |
NavAx
|
Цитата:
Если просто, скажем в Init, не перекрывая fetch-а написать
public void init() { TmpTable = Cls.getTmpTable(); super(); } то сволочная аксапта пишет "отчет не содержит данных". this.queryRun().setCursor(TmpTable);
__________________
Чудес не бывает (c), истина где-то рядом (c)... |
|
19.01.2005, 10:34 | #5 |
Снова балуюсь косаптой :)
|
Ser - огромное спасибо, после SetCursor всё заработало в лучшем виде!
__________________
Бесты и регарды! |
|
19.01.2005, 11:32 | #6 |
NavAx
|
Цитата:
Изначально опубликовано konfet
...сволочная аксапта пишет "отчет не содержит данных"...
__________________
Isn't it nice when things just work? |
|