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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2008, 10:31   #1  
TereZa is offline
TereZa
Участник
Аватар для TereZa
 
9 / 10 (1) +
Регистрация: 09.03.2008
Где вызвать методы?
Уважаемые Аксаптоведы, помогите, пожалуйста...
Ситуация такая - используем две таблицы – таблицу проектов ProjTable и таблицу затрат по проектам ProjBudgetCost.

На ProjBudgetCost прописан табличный метод, подсчитывающий сумму затрат по строке (цена*себестоимость) – результат заносится в отдельное поле в таблице.

На ProjTable прописаны 2 табличных метода, сохраняющие результат в отдельных полях в таблице:
1) подсчитывает сумму затрат по каждому проекту (результат выводится в поле на форме ProjTable)

2) подсчитывает продолжительность проекта (разность даты окончания и даты начала проекта)

Где необходимо вызвать эти методы, чтобы при внесении изменений в ProjBudgetCost (изменение себестоимости или количества, при добавлении-удалении строк), например, при сохранении или закрытии формы ProjBudgetCost, срабатывали все три метода и обновлялись значения в форме ProjTable?
Старый 21.07.2008, 11:01   #2  
/Antony/ is offline
/Antony/
Программист
 
14 / 12 (1) ++
Регистрация: 01.08.2007
вызываете свои методы из метода write() ( до super() ) таблиц ProjTable и ProjBudgetCost
Старый 21.07.2008, 11:35   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Довольно неудачный совет товарища /Antony/, так как метод write() на таблице вызывается только в случае непосредственного его вызова программистом.

Раз уж думаете на таблицу кидать методы эти, то кидать надо его в методы insert, update, delete.
Старый 21.07.2008, 12:12   #4  
npokypatop is offline
npokypatop
Злыдни
Сотрудники компании It Box
Злыдни
 
60 / 14 (1) ++
Регистрация: 28.09.2005
Адрес: Нюрнберг
Нужно создать метод с названием типа updateSums (или как-то еще по смыслу)
Вызывать его после метода super () в insert, update, delete
В методе update неплохо бы сделать проверку - какие именно поля изменялись, чтобы пересчет делался не при каждом обновлении записи
Код
super()
this.updateSums

не забыть включить в одну транзакцию
__________________
Все может быть и быть все может, все может быть или не быть,
но быть того никак не может, чего совсем не может быть.
Старый 21.07.2008, 14:44   #5  
TereZa is offline
TereZa
Участник
Аватар для TereZa
 
9 / 10 (1) +
Регистрация: 09.03.2008
Цитата:
Сообщение от npokypatop Посмотреть сообщение
в insert, update, delete
Если сделать таким образом, то изменения отображаются только после закрытия самой формы ProjTable. А нужно, чтобы они отображались при закрытии или сохранении формы ProjBudgetCost...
Старый 21.07.2008, 15:44   #6  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
insert, update, delete таблицы. Все должно быть гуд.
Старый 21.07.2008, 18:51   #7  
npokypatop is offline
npokypatop
Злыдни
Сотрудники компании It Box
Злыдни
 
60 / 14 (1) ++
Регистрация: 28.09.2005
Адрес: Нюрнберг
Цитата:
Сообщение от TereZa Посмотреть сообщение
Если сделать таким образом, то изменения отображаются только после закрытия самой формы ProjTable. А нужно, чтобы они отображались при закрытии или сохранении формы ProjBudgetCost...
То есть мы вызываем форму ProjBudgetCost из формы ProjTable, вносим изменения, закрываем?
Тогда после сохранения (удаления) записи надо вызывать методы reread, refreshEx для датасорса ProjTable.
Получить projTable_ds можно из caller-а формы ProjBudgetCost
__________________
Все может быть и быть все может, все может быть или не быть,
но быть того никак не может, чего совсем не может быть.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Методы таблицы в DataSources (DAX4) Qaz Qwerty DAX: Программирование 2 16.06.2008 10:11
Где перекрыт метод в классе miklenew DAX: База знаний и проекты 5 29.05.2008 11:07
Какие методы на таблице где отрабатываются? HorrR DAX: Программирование 4 07.04.2008 18:05
Найти display методы MrVisual DAX: Программирование 12 15.05.2007 09:53
Как вызвать нужный метод класса? Pawlik DAX: Программирование 5 12.01.2006 15:47

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

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

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