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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2013, 10:42   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Не очень понятно что должно происходить. Например, как будет обрабатываться рассогласования данных в случае несохранения данных в одной из форм?
Старый 25.04.2013, 11:40   #2  
Stingich is offline
Stingich
Участник
 
22 / 10 (1) +
Регистрация: 24.01.2013
Цитата:
Сообщение от belugin Посмотреть сообщение
Не очень понятно что должно происходить. Например, как будет обрабатываться рассогласования данных в случае несохранения данных в одной из форм?
Имеется закупка. При изменении группы договора меняется соответственно рег. номер==> и профиль учета. При этом профиль учета меняется в нижнем гриде другой таблицы на форме. Нужно, чтобы в таблице номера партии изменялось поле "форма собственности по Бу " = профилю учета в закупке.
X++:
InventBatch.OwnershipAccId = InventDim.InventProfileId_RU

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

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

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

- Из названия и местоположения метода initContractAccount на таблице PurchTable следует, что он предназанчен для инициализации полей ContractAccount таблицы PurchTable. Вставлять в него код для изменения пусть таких же полей но другой таблицы - не логично.
- Добавлять код, меняющий данные в БД, в метод, который предназначен для изменения значений лишь в курсоре - не логично.
Старый 25.04.2013, 14:27   #6  
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   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 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, время: 02:43.