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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.12.2006, 15:01   #1  
aidsua is offline
aidsua
AX*****
Аватар для aidsua
 
106 / 40 (2) +++
Регистрация: 28.09.2005
Адрес: 2:463/Kyiv
можно использовать вместо длительного
Цитата:
Проверка целостности данных компании
ниже приведенный код.. если известен перечень номенклатур с некорректными отстатками (ручные исправления в базе).

X++:
static void Job(Args _args)
{
    InventSumReCalcItem     reCalcItem;
    Dialog                  dialog = new Dialog("Коррекция остатков номенклатуры");
    DialogField             dialogItemId = dialog.addField(typeId(ItemId));
    ItemId                  itemId;
    InventTable             inventTable;
    ;
    if (dialog.run())
    {
        itemId      = dialogItemId.value();
    }
    if (itemId)
    {
        while
            select inventTable
             where inventTable.ItemId     == itemId
        {
            reCalcItem = new InventSumReCalcItem(inventTable.ItemId, true, CheckFix::Fix);
            reCalcItem.updateNow();
        }
    }
}
Старый 05.12.2006, 15:12   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
1. Спасибо.
2. Обсуждение сильно уходит в сторону от исходного вопроса.
Цитата:
Сообщение от aidsua Посмотреть сообщение
reCalcItem.updateNow();
Метод reCalcItem.updateNow() не удаляет никаких записей, насколько я помню.
Он только пересчитывает те записи, которые в момент пересчета затрагиваются в inventTrans.
__________________
полезное на axForum, github, vk, coub.
Старый 05.12.2006, 15:22   #3  
aidsua is offline
aidsua
AX*****
Аватар для aidsua
 
106 / 40 (2) +++
Регистрация: 28.09.2005
Адрес: 2:463/Kyiv
Цитата:
Сообщение от mazzy Посмотреть сообщение
1. Спасибо.
2. Обсуждение сильно уходит в сторону от исходного вопроса.

Метод reCalcItem.updateNow() не удаляет никаких записей, насколько я помню.
Он только пересчитывает те записи, которые в момент пересчета затрагиваются в inventTrans.
не согласен.. В версии 2.5 если по номенклатуре есть левые остатки ничем кроме inventsum не подкреплены -- данный код "убьет" эти остатки из таблицы inventsum.
Старый 05.12.2006, 15:31   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
1. Спасибо.
Метод reCalcItem.updateNow() не удаляет никаких записей, насколько я помню.
Он только пересчитывает те записи, которые в момент пересчета затрагиваются в inventTrans.
Удаляет.
Вот кусок кода из метода loadCurrentInventSum() (вызывается внутри updateNow())
X++:
    while select forupdate inventSum
        where inventSum.itemId == itemId
    {
        cacheInventSum.ins(inventSum);

        if (checkFix == checkFix::Fix)
            inventSum.delete();
    }
}
checkFix::Fix устанавливается по умолчанию в конструкторе класса
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: aidsua (1).
Старый 05.12.2006, 15:38   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
Удаляет.
Спасибо
__________________
полезное на axForum, github, vk, coub.
Теги
inventsum, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересчет inventSum DreamCreator DAX: Программирование 43 15.11.2014 16:48
Книга Покупок можно ли не закрывать? asabin DAX: Функционал 1 18.11.2005 17:50
Можно ли в инамическом запросе использовать "group by"? yooshi DAX: Программирование 26 23.09.2005 16:35
Можно ли исп. switch задать диапазон для case ??? djoker DAX: База знаний и проекты 23 27.12.2004 15:28
Можно ли поменять налоговый код по проведенной закупке или накладной поставщика Голова 2уха DAX: Функционал 1 25.10.2004 11:51
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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