AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2006, 16:19   #1  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Наблюдаю уже не раз следующий глюк. Расскажу по порядку.
Был у меня группированный отчёт, который строился по 1-й табличке, имел секции групхеадер, боди, групфутер и группировался по одному полю типа Code. Всё работало и печаталось прекрасно, но затем возникла необходимость группировать по 2-м полям: первое типа Date, второе - то что было раньше. Было добавлено соответствующее поле типа Date в ключ таблицы, этот ключ был выбран в отчёте и подправлено после GroupTotalFields. После этого отчёт стал строить строить непонятно что, т.е. конечно понятно, но не понятно почему. В общем в самом начале он зачем-то печатает 2 одинаковые секции групхеадер вместо положенной 1-й, а в конце также 2 секции групфутер. Подобное я уже подмечал при изхготовлении другого отчёта группирующегося по полю типа Date. Решал извращаясь - отрубал руками через CurrReport.SHOWOUTPUT(FALSE); лишние секции. Это реально глюк или я просто что-то не понимаю и не так делаю?
Старый 25.10.2006, 16:30   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
TOTALSCAUSEDBY - помогает определить, для какого поля из числа тех, по которым группируют данные возникло событие ..

Example
If you are designing a report where you group records according to the contents of several fields, and you do not want to output the group header section when the Item field changes, use C/AL code like this in the OnPreSection trigger of the section:

IF CurrReport.TOTALSCAUSEDBY = FIELDNO(Item) THEN

CurrReport.SHOWOUTPUT(FALSE);
Старый 25.10.2006, 16:59   #3  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Я этого не знал. Всё хорошо, но ведь если у меня для каждого уникального сочетания 2-х полей по которым группируют должна быть группа с соответствующими секциями, то ведь это совершенно не означает что мне надо исключать вывод для конкретного поля. Мне надо лишь исключать те случаи, когда группа и по одному и по другому полю возникают одновременно, а для этого мне TOTALSCAUSEDBY не будет полезно - всё равно надо извращаться.
Старый 25.10.2006, 18:13   #4  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Да не надо извращаться.
Вот есть у Вас, к примеру, аж 5 штук этих самых груптоталфилдов.
В итоге рисуете 5 групфутеров.
На первом рисуете поля, которые будут отображать для самого глубоковложенного груптоталфилда и пишете на OnPreSection:
CurrReport.SHOWOUTPUT := (TOTALCAUSEDBY = FieldNo(FirstGroupTotalField));
На втором групфутере аналогично, но уже
CurrReport.SHOWOUTPUT := (TOTALCAUSEDBY = FieldNo(SecondGroupTotalField));
и т.п.

Нужно всего лишь по групфутеру на каждое из груптоталфилдов, а не на каждое уникальное сочетание.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 25.10.2006, 20:38   #5  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Да мне собственно нужно было, чтоб на любые сочетания груптоталфилдов выводился 1 хеадер и 1 футер. Решил путём ввода переменной, хранящей значение первичного ключа датаитема. С помощью неё я проверяю выводилась ли секция для данного превичного ключа и если да, то не вывожу её.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:47.