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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2013, 12:04   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Stingich Посмотреть сообщение
в таблице PurchTable, метод initContractAccount
Смотрите. Этот метод на самом деле не меняет значение поля в БД. Он присваивает значение полю табличного курсора. Сохранение сделанных изменений в БД будет происходить в методе update() таблицы. Если, скажем, после того как отработает метод initContractAccount и до того как выполнится метод update(), произойдёт непредвиденная ошибка (выключится свет), то данные в БД не изменятся. Поэтому изменять значения в третьей таблице в этом методе не стоит.

Цитата:
Сообщение от Stingich Посмотреть сообщение
При этом профиль учета меняется в нижнем гриде другой таблицы на форме.
Код который вы привели не отвечает за изменение в таблице строк. Он обновляет значение только в курсоре верхней таблицы. Ищите то место откуда происходит вызов метода update() таблицы строк.
Найти откуда вызывается метод можно экспериментальным путём. Поставьте точку останова в этот метод. Когда точка останова сработает, в отладчике проанализируйте стек вызовов.
За это сообщение автора поблагодарили: Stingich (1).
Старый 25.04.2013, 12:43   #2  
Stingich is offline
Stingich
Участник
 
22 / 10 (1) +
Регистрация: 24.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Смотрите. Этот метод на самом деле не меняет значение поля в БД. Он присваивает значение полю табличного курсора. Сохранение сделанных изменений в БД будет происходить в методе update() таблицы. Если, скажем, после того как отработает метод initContractAccount и до того как выполнится метод update(), произойдёт непредвиденная ошибка (выключится свет), то данные в БД не изменятся. Поэтому изменять значения в третьей таблице в этом методе не стоит.

Код который вы привели не отвечает за изменение в таблице строк. Он обновляет значение только в курсоре верхней таблицы. Ищите то место откуда происходит вызов метода update() таблицы строк.
Найти откуда вызывается метод можно экспериментальным путём. Поставьте точку останова в этот метод. Когда точка останова сработает, в отладчике проанализируйте стек вызовов.
Просто у меня в initContractAccount прописано, что изменяется профиль учета в зависимости от рег. номера, поэтому и хотелось бы туда добавить нужный код.
Старый 25.04.2013, 14:07   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Stingich Посмотреть сообщение
Просто у меня в initContractAccount прописано, что изменяется профиль учета в зависимости от рег. номера, поэтому и хотелось бы туда добавить нужный код.
На всякий случай ещё раз. Две причины, по которым не стоит этого делать - это название метода: initContractAccount и его местоположение: таблица PurchTable.

- Из названия и местоположения метода initContractAccount на таблице PurchTable следует, что он предназанчен для инициализации полей ContractAccount таблицы PurchTable. Вставлять в него код для изменения пусть таких же полей но другой таблицы - не логично.
- Добавлять код, меняющий данные в БД, в метод, который предназначен для изменения значений лишь в курсоре - не логично.
Старый 25.04.2013, 14:27   #4  
Stingich is offline
Stingich
Участник
 
22 / 10 (1) +
Регистрация: 24.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На всякий случай ещё раз. Две причины, по которым не стоит этого делать - это название метода: initContractAccount и его местоположение: таблица PurchTable.

- Из названия и местоположения метода initContractAccount на таблице PurchTable следует, что он предназанчен для инициализации полей ContractAccount таблицы PurchTable. Вставлять в него код для изменения пусть таких же полей но другой таблицы - не логично.
- Добавлять код, меняющий данные в БД, в метод, который предназначен для изменения значений лишь в курсоре - не логично.
мне нужно, чтобы данные изменились в таблице inventBatch, тогда в методе update() уже самой таблицы inventBatch лучше код написать?
Старый 25.04.2013, 15:00   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Stingich Посмотреть сообщение
мне нужно, чтобы данные изменились в таблице inventBatch, тогда в методе update() уже самой таблицы inventBatch лучше код написать?
А кто вам вызовет этот метод?

Вы должны сами найти запись в inventBatch которую хотите изменить; выбрать её для обновления; задать новое значение поля; и наконец вызвать метод update() таблицы inventBatch для сохранения изменений в БД.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Универсальный изменятель значений полей wojzeh DAX: Программирование 17 26.09.2013 17:47
Добавление полей на форму в run-time Ar DAX: Программирование 22 02.03.2012 00:14
Изменение идентификаторов(id) полей Dron AKA andy DAX: База знаний и проекты 30 17.06.2009 10:11
Как перекрыть lookup для поля входящего в группу полей ATimTim DAX: Программирование 2 05.10.2005 11:26
очистка полей. простой вопрос Антон Солдатов DAX: Программирование 4 04.04.2003 10:28
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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