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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.08.2012, 00:30   #1  
kit22 is offline
kit22
Участник
 
30 / 12 (1) ++
Регистрация: 15.08.2012
Не обновляется display метод на форме
Всем привет! Я имею форму с 2мя гридами, на нижнем grid есть поле, которое отображает display метод с таблицы. На datasource нижнего грида другая таблица (не та, на которой display method). Когда я открываю форму автоматически выбирается 1-я запись с верхнего грида, и поле с дисплей методом нижнего грида отображает корректные данные для 1-й записи. Но если выбрать любую другую запись из верхнего грида, то на нижнем гриде все данные отображаются корректно, кроме поля с дисплей методом. Это поле для всех записей показывает данные для 1-й записи. Видимо display метод не обновляет это поле, при выборе других записей, и отображает данные для 1-й записи. Проверил дебаггером значение возвращаемое display методом, и всё корректно.
p.s. Если выбирать дефолтным фильтром по выделению другие записи, то данные отображаются корректно.
Пробовал и TableName_ds.reread и refresh не помогает. ExecuteQuery также не помогает, так как верхний грид имеет в datasource туже таблицу, на которой display метод. Можете посоветовать чего-нибудь? Спасибо
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 15.08.2012, 02:16   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kit22 Посмотреть сообщение
на нижнем grid есть поле, которое отображает display метод с таблицы. На datasource нижнего грида другая таблица (не та, на которой display method). ExecuteQuery также не помогает, так как верхний грид имеет в datasource туже таблицу, на которой display метод.
Разрыв мозга...
Старый 15.08.2012, 08:06   #3  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Возможно, display-метод написан на форме, и в нем не указан входящий параметр Display метод на форме
Старый 15.08.2012, 08:35   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А какого типа связь между датасурсами?
Какая версия системы?
Старый 15.08.2012, 09:12   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от kit22 Посмотреть сообщение
На datasource нижнего грида другая таблица (не та, на которой display method). Когда я открываю форму автоматически выбирается 1-я запись с верхнего грида, и поле с дисплей методом нижнего грида отображает корректные данные для 1-й записи. Но если выбрать любую другую запись из верхнего грида, то на нижнем гриде все данные отображаются корректно, кроме поля с дисплей методом.
Если есть связь между таблицами, то вполне возможно переписать этот дисплей метод на ту таблицу, которая относится к нижнему гриду. И грид и дисплей метод будут принадлежать к одной таблице, работать будет корректно. А подобного рода извращения
Цитата:
Сообщение от kit22 Посмотреть сообщение
На datasource нижнего грида другая таблица (не та, на которой display method).
всегда могут привести к непредсказуемым и порой необъяснимым ситуациям.
Еще есть частая ошибка, когда тянут мышкой дисплей метод таблицы из репозитария сразу в грид, при этом забывая в своиствах контрола этого дисплей метода указать датасоурс. Аксапта его автоматически не ставит.Соответственно до тех пор пока не указать датасорс дисплей метод работать не будет.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 15.08.2012 в 09:15.
За это сообщение автора поблагодарили: S.Kuskov (1), kit22 (1).
Старый 15.08.2012, 09:55   #6  
kit22 is offline
kit22
Участник
 
30 / 12 (1) ++
Регистрация: 15.08.2012
Display метод на таблице, не на форме. Он отображает данные через join, так что он нужен именно на ней. Дело в том, что дебаггер отображает правильные возвращаемые данные. Просто на таблице display данные не обновляются при переходе. То есть при открытии считает правильно же, но дальше не обновляется, а всё время отображает данные для первой записи, то есть не пересчитывается при выборе других записей..
За это сообщение автора поблагодарили: Pustik (1).
Старый 15.08.2012, 10:10   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kit22 Посмотреть сообщение
Display метод на таблице, не на форме. Он отображает данные через join, так что он нужен именно на ней.
Вам шашечки или ехать?

Воспроизвёл у себя багу на AX2009. Если переписать и перенёсти метод на подчинённую таблицу, как советует Pustik, то работать будет.
Чтобы постоянно не селектить родительскую таблицу, можно разместить метод на датасурсе и там пользоваться уже выбраным активным курсором из верхнего грида.
За это сообщение автора поблагодарили: kit22 (1).
Старый 15.08.2012, 11:04   #8  
kit22 is offline
kit22
Участник
 
30 / 12 (1) ++
Регистрация: 15.08.2012
Спасибо, действительно помогло!
Теги
axapta, ax2009

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Display метод временной таблицы выполняется в компании DAT S.Kuskov DAX: Программирование 4 15.04.2011 20:11
Display метод на форме PavelSR DAX: Программирование 15 01.06.2006 13:50
Можно ли в display методе узнать для какого FormControl'а этот метод вызван? Dudnik Anton DAX: Программирование 3 01.02.2006 12:22
display метод с параметром Андре DAX: Программирование 5 11.01.2006 19:04
display метод на форме Shirmin Oleg DAX: Программирование 11 13.07.2004 16:58

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

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

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