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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.12.2009, 11:51   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от pwp Посмотреть сообщение
Вопрос, похоже, простой, но тем не менее. Одно из полей таблицы, показанное на
Grid является производным от нескольких полей в той же таблице.
1. В каком в методе лучше окончательно формировать это поле: leaveRecord() или write() этой формы или еще где то?
2. Как показать (обновить на Grid) это поле при уходе с этой записи ? В каком методе ?
На таблице, в методе modifiedField - при изменении значений полей, от которых зависит значение - если вычисления не трудоемки по производительности;
или в методах insert+update.
На гриде поле обновится автоматом.
Старый 25.12.2009, 12:03   #2  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от DSPIC Посмотреть сообщение
На таблице, в методе modifiedField - при изменении значений полей, от которых зависит значение - если вычисления не трудоемки по производительности;
или в методах insert+update.
Ну в методе modifiedField не очень красиво , если таких полей > 1.
"или в методах insert+update." - на таблице или источнике данных ?

Цитата:
Сообщение от DSPIC Посмотреть сообщение
На гриде поле обновится автоматом.
Да вот не обновляется автоматом, нужен dataSource_DS.research() только вот куда его поставить ?
Старый 25.12.2009, 12:07   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от pwp Посмотреть сообщение
Ну в методе modifiedField не очень красиво , если таких полей > 1.
Это нормальная практика. Поищите по стандартным таблицам метод modifiedField. К тому же никто вам не мешает саму логику вычислений (если она грамоздка) вынести в соседний метод или скажем в специальный класс
Старый 25.12.2009, 12:16   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от pwp Посмотреть сообщение
нужен dataSource_DS.research() только вот куда его поставить ?
Событие после которого обновятся данные (вызовутся update или insert таблицы) в активной строке - это dataSource.write(). Т.е. делать research() нужно после super() этого метода.
За это сообщение автора поблагодарили: pwp (1).
Старый 25.12.2009, 12:27   #5  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Событие после которого обновятся данные (вызовутся update или insert таблицы) в активной строке - это dataSource.write(). Т.е. делать research() нужно после super() этого метода.
Ок, прекрасно. Спасибо.
Старый 25.12.2009, 13:18   #6  
Кирилл
Гость
 
n/a
Цитата:
Сообщение от pwp Посмотреть сообщение
Ок, прекрасно. Спасибо.
Ax3SP6
Research() обновляет весь список и курсор может встать не в ту строку,
которую Вы редактировали (если строк больше одной и редактировали строку где-нибудь в середине).
В результате Вы начнете беспокоиться о методах позиционирования в гриде.

Следование совету DSPIC (перекрытие метода modifiedField на таблице), позволит избежать беспокойства.
Обновить на экране строчку методом refresh() можно прямо из modifiedField на таблице.

Последний раз редактировалось Кирилл; 25.12.2009 в 13:23.
Старый 25.12.2009, 14:20   #7  
pwp is offline
pwp
Участник
 
76 / 16 (1) ++
Регистрация: 08.07.2008
Адрес: Обнинск
Цитата:
Сообщение от Кирилл Посмотреть сообщение
Ax3SP6
Research() обновляет весь список и курсор может встать не в ту строку,
......
Обновить на экране строчку методом refresh() можно прямо из modifiedField на таблице.
Цитата:
Сообщение от DSPIC
Вроде обновляется, стандартный подход;
public void modifiedField(fieldId _fieldId)................
void calcItemId()
.............
Полностью согласен, но проблема в том, что не все записи этой таблицы подвергаются такому преобразованию, а лишь те записи которые еще при уточнении по двум другим таблицам имеют спецпризнак. Причем не на всех формах с этой таблицей это нужно. Поэтому мне казалось, что ставить все эти методы на таблицу не совсем правильно, а лучше делать на форме, а может на источнике формы.Но в любом случае спасибо за ответы, была ценная информация для меня.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Filter-by-Grid Blog bot DAX Blogs 2 30.05.2012 13:39
Dynamics AX: DAX 4.0 Filter by Grid [Update] Blog bot DAX Blogs 0 27.04.2007 17:10
Поле в Grid типа Window Андре DAX: Программирование 13 18.12.2003 18:22
Объединить несколько полей таблицы в одном поле Grid-а на форме? storer DAX: Программирование 2 12.11.2003 14:08
Кнопка выбора даты в поле Grid Maxim Gorbunov DAX: База знаний и проекты 0 28.11.2001 14:03

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

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

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