Показать сообщение отдельно
Старый 04.05.2010, 14:07   #4  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Там не то, чтобы кэширование кривенькое, а вроде бы на итераторе, используемом для подтягивания записей в кэш, лишний раз next() вызывается - в смысле вызывается тогда, когда делать этого вообще не нужно.
Кривенькое-кривенькое... я бы еще сказал и корявенькое...

Сначала все записи перебираются и вставляются в мап, для чего в лучших традициях жанра используются исключительно контейнеры с макросами (явно, парни специально думали про удобство последующего сопровождения, отладки и доработки кода ), потом пару разу в мапе прокручиваются, потом частично выводятся в контрол на форме, а отчет потом строиться частично из данных контрола на форме, а частично из мапа...

Сходу так и не поймешь, что где и когда кешируется... Не удивительно, что они один из итераторов лишний раз двигают дальше.

Вообщем, один из многих изящных алгоритмов русской локализации. И хороший tutorial как не надо делать в Аксапте.

ПС: Может кто-нить зарегистрирует баг в Майкрософт?
__________________
Dynamics AX Experience

Последний раз редактировалось CDR; 04.05.2010 в 14:17.