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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2018, 17:40   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Если смочь перевести часы на компьютере, где крутится АОС, то должно сработать. Правда у меня не получилось перевести часы )

Общий подход такой - есть 3 режима правки такого рода таблиц:Correction, CreateNewTimePeriod и EffectiveBased
Все режимы запрещают правку в прошлом периоде, однако в текущем и будущем периодах ведут себя по-разному:
Correction позволяет редактировать поля ValidFrom / ValidTo с последующей автоматической корректировкой дат у записей в прошлом / будущем периоде
CreateNewTimePeriod всегда дробит период
EffectiveBased - дробит только текущий период, а будущий правит в режиме Correction

Т.е. если мы убедим систему считать дату из прошлого датой из настоящего, то тогда текущий период можно разбить таким кодом:
X++:
    ttsBegin;
    dat = today() + 5; // Тут нужно поставить правильную дату
    select forUpdate validTimeState(dat) items;
    info(strFmt('Выбрана запись %1 со сроком с %2 по %3', items.name, items.ValidFrom, items.ValidTo));
    items.validTimeStateUpdateMode(ValidTimeStateUpdate::CreateNewTimePeriod);
    items.ValidFrom = dat;
    items.write();
    info(strFmt('Изменена запись %1 со сроком с %2 по %3', items.name, items.ValidFrom, items.ValidTo));
    ttsCommit;
где items - это таблица, которая имеет поле name и поля ValidFrom / ValidTo
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 30.01.2018 в 17:43.
За это сообщение автора поблагодарили: Logger (1).
Теги
ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли создать edit-метод в таблице кодом на X++? Vasiliusis DAX: Программирование 31 01.12.2016 09:30
невозможно создать запись в Rudman DAX: Программирование 3 24.08.2006 18:15
Программно создать запись в RLS. oip DAX: Программирование 9 22.12.2005 17:25
Можно ли создать нормельную отгрузку при возврате по строке Sirius DAX: Функционал 4 04.06.2004 08:25
Можно ли создать версии спецификации для номенклатуры с разными конфигурациями? Hard DAX: Функционал 4 08.12.2003 19:20

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

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

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