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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.10.2003, 09:40   #1  
parovoz is offline
parovoz
Участник
 
18 / 12 (1) ++
Регистрация: 28.08.2003
? Как сказать FormDataSourse что запись в нем была изменена?
В Акспта 3 есть такая штука, как шаблоны записей (мы используем шаблоны компании). Когда пользователь создает новую запись, все поля в ней чудесным образом заполняются, но вот если не менять ее и не нажать принудительно Save, то сохранять ее Аксапта даже и не собирается. Окно можно закрыть без каких либо предупреждений, а потом обнаружить что только что созданной записи в таблице нет.
Старый 03.10.2003, 15:56   #2  
Shark is offline
Shark
Участник
Аватар для Shark
 
47 / 11 (1) +
Регистрация: 12.09.2003
Адрес: Москва
Как Вы могли заметить из шаблона заполняются не все поля. Например, при создании новой номенклатуры поле ItemId осталось пустым. Следовательно, необходимо его заполнить вручную и тогда сработает modified(). Тогда запись сохранится.

У меня была таже проблема. Пробовал "ковыряться" в методе InitValue() класса SysRecordTemplate.
Теперь у нас ItemId вычисляется автоматически по заданному алгоритму и подставляется в запись созданную по шаблону. Но запись также не сохраняется.
Можно ее сохранять принудительно в методе createRecord(), но это как-то туповато.
Короче пока ручками что-то не изменить, то запись не сохранится.
Старый 03.10.2003, 16:31   #3  
parovoz is offline
parovoz
Участник
 
18 / 12 (1) ++
Регистрация: 28.08.2003
У меня то тоже ItemID определяется не руками. В классе SysRecordTemplate, в самом конце метода CreateRecord написал следующие:

PHP код:
    if (useAutoItemID)
    {
        
CodeParser.replaceIdAndName(common);
        if (
common.isFormDataSource())
        {
            
_FormDataSource common.dataSource();
            
_FormDataSource.setRecord(common);
            
_FormDataSource.setCursor();
            
_FormDataSource.forceWrite(true);//Метод странный.
// Как бы наполовину записывает строку. Строка считает себя измененной,
// поле ItemID уже не редактируется, однако, если нажать Escape
// запись сохранена не будет. Справки по ней нет, вот и прошу помощи.
        
}

    } 
Кстати, подскажите как вы устанавливаете ItemID для связанных таблиц InventTableModule?
Теги
forcewrite, шаблон

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Можно ли определить что запись была сторнирована ? zZ_TOP_Zz DAX: Функционал 4 31.05.2007 17:55
Очень просто: создать новую запись в таблице Hobo DAX: Программирование 20 11.07.2006 13:02
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:14.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.