27.11.2008, 13:56 | #1 |
Участник
|
Легкое поведение поля BlockImage в журналах
Ax 3.0
Сценарий:
Кто-нибудь с этим справился? |
|
|
За это сообщение автора поблагодарили: kashperuk (3), DocSerzh (1), vc (1). |
27.11.2008, 14:44 | #2 |
Программатор
|
Бывало, но по моей вине (В написанном мной функционале). Это слетает фильтр я думаю на форме журналов.
Последний раз редактировалось Sada; 27.11.2008 в 14:48. |
|
27.11.2008, 14:53 | #3 |
Участник
|
|
|
27.11.2008, 15:10 | #4 |
Программатор
|
Не, наверна не в фильтрах дело. А вообще баг прикольный
|
|
27.11.2008, 17:21 | #5 |
Участник
|
Хм. Спасибо, интересный баг. В АХ 2009 иконка - не АХ, а какая-то другая, но все же появляется.
|
|
27.11.2008, 17:43 | #6 |
MCITP
|
Не с id ли "0" картинка?
__________________
Zhirenkov Vitaly |
|
27.11.2008, 19:00 | #7 |
Участник
|
display методы & formRun.wait()
Тестировал сценарий на DAX 4.0.
Похоже прослеживается общая закономерность воспроизведения bug'а в целом для display-методов при закрытиий формы по 'Esc' и условии что с текущей формы открыта (и не закрыта) другая форма в режиме ожидания закрытия посредством formRun.wait(). При этом слетают значения всех display-методов выведенных в активную форму. Если display метод выводил не картинку то совсем не прикольный bug. |
|
|
За это сообщение автора поблагодарили: AndyD (5). |
27.11.2008, 19:27 | #8 |
Участник
|
petergunn, а можно примеры, чтобы я не искал сам? Спасибо
|
|
28.11.2008, 07:55 | #9 |
Участник
|
Пример. DAX 4.0
Набросал простенькую форму для демонстрации. Характерное поведение проявляется на display и edit методах связанных с источником данных формы (не связанный с источником данных edit метод itemTypeUnbound нормально пережил эксперимент):
Последний раз редактировалось petergunn; 28.11.2008 в 08:10. |
|
|
За это сообщение автора поблагодарили: kashperuk (5), vc (1). |
28.11.2008, 10:34 | #10 |
Участник
|
Воспроизвести можно на любой форме с датасорсами и дисплейными методами.
Достаточно вызвать форму фильтров и сделать, как написал petergunn Происходит это, на мой взгляд, из-за того, что форма не отслеживает в каком контексте выполняются вызовы. Т.е., при открытом из формы диалоговом окне обработка событий происходит внутри метода wait(). При нажатии на ESC на форме отрабатывает стандартная последовательность закрытия формы. При этом, во внутренние флаги записывается информация, что форма готова к закрытию. Но, так как управление возвращается в метод wait(), то закрытие окна с формой и уничтожения класса формы не происходит. Внешне это проявляется в запрете вызова дисплейных методов для датасорса (и сбросе их из кэша) - в результате чего, данные просто не отоборажаются или отображаются неверно. Есть еще одно проявление - если закрыть диалоговое окно и внести изменение в какое-либо поле не сохраняя эти изменения, то по ESC форма закроется без запроса на сохранение изменений - метод CanClose() вообще не будет вызван. Помимо изменений в ядре - что бы оно отслеживало эту ситуация, единственное, что мне приходит в голову для исправления - это перекрыть метод CanClose() в классе SysSetupFormRun и в нем отслеживать наличие в стеке вызовов метода Wait(). X++: public boolean canClose() { boolean ret; container c; int i; ; ret = super(); c = xSession::xppCallStack(); i = 1; while (i <= conLen(c)) { if (typeof(conpeek(c, i)) == Types::String) { if (match(@"\\FormRun\\wait>", conpeek(c, i))) { ret = false; break; } } i++; } return ret; }
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: ZVV (1), DocSerzh (1), Logger (2), vc (1). |
Теги |
blockimage, lockimage, баг, журнал |
|
|