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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2013, 11:24   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от user_ax Посмотреть сообщение
Метод last нигде не перекрыт?
Неа, точно нет, нигде не перекрыт

Причем такая еще особеность: данной код является частью кода обработчика события modified для контрола, которому назначен датасорс и датафилд, разумеется. И такая фигня происходит. А если перенести этот код, скажем, чтоб работал по нажатию кнопки - такой проблемы нет...

Контрол, для которого сейчас выполняется сей код - это стрингЭдит с выпадающим списком. В свою очередь, физически, датафилд данного контрола является внешним ключом таблицы. Вывод этой таблицы (набор столбцов) определен через группу AutoLookup. Может поможет, скорее всего дело в этом

Последний раз редактировалось Vasiliusis; 13.02.2013 в 11:39.
Старый 13.02.2013, 13:40   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,452 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
данной код является частью кода обработчика события modified для контрола
Т.е. вы сразу как только, пользователь изменил значение поля на форме (изменения произошли только на форме, не в БД), производите вставку новой записи в таблицу и ещё на форме прерываете процесс редактирования пользователем записи и переводите курсор на другую... По идее при потере курсора редактируемая запись должна будет сохраниться, но что если сохранение(метод write) проведённых изменений по каки-либо причинам не отработает? Что будет с целостностью данных?
Старый 13.02.2013, 14:48   #3  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Т.е. вы сразу как только, пользователь изменил значение поля на форме (изменения произошли только на форме, не в БД), производите вставку новой записи в таблицу и ещё на форме прерываете процесс редактирования пользователем записи и переводите курсор на другую...
Эммм... пользователь меняет значение на форме, я пишу новое значение в БД (создаю, если контрол устанавливается впервые, либо редактирую, если наоборот). Далее, курсор переводится на новую запись, либо на отредактированную и данные отображаются в связанных с ДС контролах.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
По идее при потере курсора редактируемая запись должна будет сохраниться, но что если сохранение(метод write) проведённых изменений по каки-либо причинам не отработает? Что будет с целостностью данных?
В форме, точнее в объекте формы, сохраняется айдишник записи. Гридов на этой форме нет. Одно открытие формы - работа только с одной записью. Т.к. запись одна, то соответственно все манипуляции в форме отражаются только в ней одной, т.к. позиция записи в ДС не меняется. Кроме этого, если будут возникать эксепшены - я отслежу почему и устраню, а так - многие данные выбираются из связанных таблиц, следовательно, целостность данных не пострадает. Если я Вас правильно понял.
Старый 13.02.2013, 15:12   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Вместо last() используйте reread()/refresh().
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Эммм... пользователь меняет значение на форме, я пишу новое значение в БД (создаю, если контрол устанавливается впервые, либо редактирую, если наоборот).
Не понимаю, зачем вы это делаете?
__________________
// no comments
Старый 14.02.2013, 05:51   #5  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от dech Посмотреть сообщение
Вместо last() используйте reread()/refresh().

Не понимаю, зачем вы это делаете?
чтобы все изменения сразу сохранялись, вот для чего

рерид/рефреш не пашет, т.к. при инсерте курсор не встает на добавленную запись, а стоит на первой, проверял неоднократно
Старый 14.02.2013, 05:53   #6  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Короче, дело закрыто, всем спасибо
Теги
волшебство, колдовство, магия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Недоступность источника данных формы в display/edit-методах таблицы - баг или фича с глубоким смыслом? TasmanianDevil DAX: Программирование 10 03.08.2012 15:00
разная скорость отработки display методов на источнике данных формы wojzeh DAX: Программирование 10 05.05.2008 23:53
Странное поведение формы Создание строк vc DAX: Функционал 10 22.03.2006 10:32
Обновление данных формы из другой формы DiZ DAX: Программирование 4 14.10.2004 11:39
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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