15.08.2012, 00:30 | #1 |
Участник
|
Не обновляется 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 |
Участник
|
Разрыв мозга...
|
|
15.08.2012, 08:06 | #3 |
MCP
|
Возможно, display-метод написан на форме, и в нем не указан входящий параметр Display метод на форме
|
|
15.08.2012, 08:35 | #4 |
Участник
|
А какого типа связь между датасурсами?
Какая версия системы? |
|
15.08.2012, 09:12 | #5 |
Участник
|
Цитата:
Сообщение от kit22
На datasource нижнего грида другая таблица (не та, на которой display method). Когда я открываю форму автоматически выбирается 1-я запись с верхнего грида, и поле с дисплей методом нижнего грида отображает корректные данные для 1-й записи. Но если выбрать любую другую запись из верхнего грида, то на нижнем гриде все данные отображаются корректно, кроме поля с дисплей методом.
Цитата:
Еще есть частая ошибка, когда тянут мышкой дисплей метод таблицы из репозитария сразу в грид, при этом забывая в своиствах контрола этого дисплей метода указать датасоурс. Аксапта его автоматически не ставит.Соответственно до тех пор пока не указать датасорс дисплей метод работать не будет.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 15.08.2012 в 09:15. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1), kit22 (1). |
15.08.2012, 09:55 | #6 |
Участник
|
Display метод на таблице, не на форме. Он отображает данные через join, так что он нужен именно на ней. Дело в том, что дебаггер отображает правильные возвращаемые данные. Просто на таблице display данные не обновляются при переходе. То есть при открытии считает правильно же, но дальше не обновляется, а всё время отображает данные для первой записи, то есть не пересчитывается при выборе других записей..
|
|
|
За это сообщение автора поблагодарили: Pustik (1). |
15.08.2012, 10:10 | #7 |
Участник
|
Цитата:
Воспроизвёл у себя багу на AX2009. Если переписать и перенёсти метод на подчинённую таблицу, как советует Pustik, то работать будет. Чтобы постоянно не селектить родительскую таблицу, можно разместить метод на датасурсе и там пользоваться уже выбраным активным курсором из верхнего грида. |
|
|
За это сообщение автора поблагодарили: kit22 (1). |
15.08.2012, 11:04 | #8 |
Участник
|
Спасибо, действительно помогло!
|
|