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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2011, 18:40   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Che Посмотреть сообщение
по каким полям собрать сумму - не знаю... По CostAmountPosted? Или нет?
Есть нюансы . Поищите по форуму по ключевому слову CostAmountAdjustment.
Например:
Себестоимость проданного товара SQL запросом
Оборотно-сальдовая ведомость по складу
За это сообщение автора поблагодарили: Che (1).
Старый 16.03.2011, 10:23   #2  
Che is offline
Che
Участник
 
92 / 12 (1) ++
Регистрация: 25.01.2010
Господа, нужна критика
Вот каким образом я решил задачку:
X++:
//+++Che 16032011
static container Get_InventDate_Qty_Cost(ItemId _itemId,
                                   InventLocationId _inventLocationId,
                                   InventBatchId    _inventBatchId,
                                   DateStatus endDate
                                  )
{

    InventTrans _inventTrans;
    InventDim   _inventDim;
    container   con;
    real        costSum;

    // íàõîäèì êîëè÷åñòâî ïðèøåäøåå çà ïåðèîä
    select sum(Qty),sum(costAmountPosted),sum(costAmountAdjustment) from _inventTrans
    group by ItemId
    where  _inventTrans.ItemId          == _itemId                              &&
           _inventTrans.DatePhysical    <= endDate                              &&
           _inventTrans.StatusIssue     != StatusIssue::OnOrder                 &&
           _inventTrans.StatusIssue     != StatusIssue::Picked                  &&
           _inventTrans.StatusIssue     != StatusIssue::ReservOrdered           &&
           _inventTrans.StatusIssue     != StatusIssue::ReservPhysical          &&
           _inventTrans.StatusIssue     != StatusIssue::QuotationIssue          &&
           _inventTrans.StatusReceipt   != StatusReceipt::Registered            &&
           _inventTrans.StatusReceipt   != StatusReceipt::Arrived               &&
           _inventTrans.StatusReceipt   != StatusReceipt::QuotationReceipt      &&
           _inventTrans.StatusReceipt   != StatusReceipt::Ordered
    join _inventDim
        where _inventTrans.InventDimId == _inventDim.inventDimId &&
        _inventDim.inventBatchId == _inventBatchId &&
        _inventDim.InventLocationId == _inventLocationId;
    costSum = _inventTrans.CostAmountPosted + _inventTrans.CostAmountAdjustment;
    con = conins(con, 1,_inventTrans.Qty, costsum);
    return con;
}
Задачка была в следующем: дополнить отчет физическое наличие по партиям (количественный учет), для ввода первичных остатков в 1с. Оптимально? Как думаете?
Старый 16.03.2011, 10:38   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Che Посмотреть сообщение
Оптимально? Как думаете?

Ограничения на статус проводки
X++:
           _inventTrans.StatusIssue     != StatusIssue::OnOrder                 &&
           _inventTrans.StatusIssue     != StatusIssue::Picked                  &&
           _inventTrans.StatusIssue     != StatusIssue::ReservOrdered           &&
           _inventTrans.StatusIssue     != StatusIssue::ReservPhysical          &&
           _inventTrans.StatusIssue     != StatusIssue::QuotationIssue          &&
           _inventTrans.StatusReceipt   != StatusReceipt::Registered            &&
           _inventTrans.StatusReceipt   != StatusReceipt::Arrived               &&
           _inventTrans.StatusReceipt   != StatusReceipt::QuotationReceipt      &&
           _inventTrans.StatusReceipt   != StatusReceipt::Ordered
можно заменить на условие существования физической даты
X++:
_inventTrans.DatePhysical != dateNull()

P.S.: А для чего вы делатете con = conins(con, 1, Qty, CostSum);
вместо более наглядного con = [Qty, CostSum] или даже сразу return [Qty, CostSum];
К слову и в обратную сторону можно также [Qty, CostSum] = con;
Старый 16.03.2011, 10:49   #4  
Che is offline
Che
Участник
 
92 / 12 (1) ++
Регистрация: 25.01.2010
Точно! Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расхождение суммы проводки по поставщику и сопоставленной суммы petr DAX: Функционал 2 15.10.2008 23:31
Алгоритм расчета общей суммы kashperuk DAX: Программирование 31 05.09.2007 22:37
Корректировка суммы налога в закупке ymv2000 DAX: Функционал 4 26.10.2006 09:19
В кассовой книге не печатаются суммы больше 1000000 mad_pilot DAX: Функционал 10 29.01.2003 10:58
Изменение формата вывода суммы в платежке Maxim Gorbunov DAX: Программирование 1 28.12.2001 13:57

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

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

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