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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.08.2003, 17:30   #1  
AndrewP is offline
AndrewP
Участник
 
4 / 10 (1) +
Регистрация: 10.02.2003
Адрес: St.Petersburg
Программный SaveRecord
Всем привет!

Как проверить то, что запись создана или модифицирована (но не сохранена)?

В итоге хочу реализовать что-то вроде свойства "SaveRecord" у кнопки, но в любой момент и программно.
Старый 25.08.2003, 19:05   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
К сожалению, какого-либо свойства типа touched() для записи не предусмотрено. Предлагаю действовать "в лоб": сравнить все поля с первоначальными значениями (в случае создания записи - с нулевыми). Код может быть такой:
PHP код:
    callerRecordOrig _callerRecord.orig();
    
dictTable = new DictTable(_callerRecord.TableId);
    for (
dictTable.fieldCnt(); >= 1i--)
    {
        
dictField dictTable.fieldObject(dictTable.fieldCnt2Id(i));
        if (
_callerRecord.(dictField.id()) != callerRecordOrig.(dictField.id()) )
        {
            
// tue etwas
        
}
    } 
Старый 25.08.2003, 19:35   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Еще мысль: отлавливать все обращения к методу validateField() на таблице или ко всем методам modified() на полях источника данных.
Старый 25.08.2003, 22:54   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
У записи есть метод - orig().
Он возвращает таблицу со значениями полей, которые были сразу после загрузки записи.

Примеры поищите в классах inventUpd_*
Старый 25.08.2003, 23:05   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а для сравнения всех полей лучше воспользоваться
Global::Bufcmp()
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
программный разрыв join-a Oleksandr DAX: Программирование 3 30.03.2008 09:42
Программный запуск AOT matew DAX: Программирование 2 25.03.2008 20:47
Программный импорт xpo SolNik DAX: Программирование 13 02.10.2006 14:53
Странный программный код. Гуру, помогите! dirigente DAX: Программирование 5 15.01.2004 13:53
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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