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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2010, 16:03   #1  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
Epic Fail Остатки на дату InventSumDateValueReportDim
Epic Fail Остатки на дату InventSumDateValueReportDim

Здравствуйте,
была простая задача: получить остатки на определенную дату.
в компании используется складская аналитика Склад. (только).
Задачка простая на 30.09.2010 получить остатки по номенклатуре вида:
Номенлкатура, Склад, Количество, Сумма

по идее все должно работать за счет стандартного класса InventSumDateValueReportDim

как бы не так
есть номенклатура 'ЦТ0085140'
по ней движение появилось 05.11.2010
до этой даты 05.11.2010 НЕТ ПРОВОДОК в InventTrans с такой номенклатурой по любой складской аналитке

05.11.2010 куплено 20 штук
20.11.2010 продано 1 штука
на текущий день 19 штук осталось


на 30.09.2010 по этой номенклатуре должно быть ровно 0
по всем складским аналитикам.

но увы.


X++:
 InventDimId _inventDimId;
    date        _date;
    itemId      _itemId;
    Qty qty, qty2;
    InventSumDateValueReportDim     Invent; // класс расчета на определенную дату
    InventDim                       inventDimLoc;
    InventDimParm                   inventDimParmLoc;
    ;
    _itemId = 'ЦТ0085140';
    _inventDimId = 'ЦАН00069498';
    _date = mkdate(30,9,2010);
    inventDimParmLoc.InventLocationIdFlag = NoYes::Yes;
    inventDimParmLoc.InventGTDIdFlag_RU   = NoYes::No;
    inventDimLoc = inventDim::find(_inventDimId);
    Invent = InventSumDateValueReportDim::newParameters(
        _date,
        _itemId,
        inventDimLoc,
        inventDimParmLoc);
    qty  = Invent.PostedQty() - Invent.deductedQty() + Invent.receivedQty();
    qty2 = Invent.PostedQty();
   info(StrFmt("%1  %2",qty ,qty2));
упорно возвращает 19


а вот такой код возвращает все верно 0

X++:
 inventTrans   inventTrans;
 
    select sum(Qty) from inventTrans
    group by inventDimId, itemId
    where
    inventTrans.ItemId == 'ЦТ0085140' &&
    inventTrans.DatePhysical <= mkdate(30,09,2010) &&
    inventTrans.StatusIssue <= StatusIssue::Deducted &&
    inventTrans.StatusReceipt<= StatusReceipt::Received &&
    inventTrans.inventDimId == 'ЦАН00069498';
    info(strfmt("%1", inventTrans.Qty));

Вопрос: неужели на стандартный класс нельзя положиться,
если движение по номенклатуре началось позже указанной даты?
выдает ерунду.

Последний раз редактировалось Evgeniy2020; 25.11.2010 в 16:09.
Теги
остатки на дату

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Складские остатки на дату Logger DAX: Программирование 13 06.10.2010 16:20
Остатки на дату InventSumDatePhysical Raven Melancholic DAX: Программирование 6 10.05.2007 15:29
Остатки товара на определенную дату Lucky13 DAX: Программирование 7 27.03.2007 14:27
Остатки на дату. Bars DAX: База знаний и проекты 119 15.02.2006 20:35

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

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

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