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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2008, 15:18   #1  
CasperSKY is offline
CasperSKY
Axapta Retail User
Аватар для CasperSKY
Axapta Retail User
 
53 / 10 (1) +
Регистрация: 22.02.2008
Очередные грабли while select
Проблема выборки ...
X++:
static server container calcQty1(ItemId           _itemId,
                                InventDimId      _inventDimId,
                                InventLocationId _inventLocationId,
                                InventParameters _inventParameters = InventParameters::find())
{
    InventSum        inventSum;
    InventSum        inventSum1;
    PurchTable       purchTable;
    InventDim        inventDim = InventDim::find(_inventDimId);
    InventDimParm    inventDimParm;
    Qty              MyOnHand;
    Qty              onHand;
    Qty              dcOnHand;
    Qty              ordered;

    Qty              invTrans;
    InventTrans purch;
    InventTrans      inventTrans;
    InventDim        tmpDim;
    date             dat;
;
    dat                                = today() - 2;
    inventDimParm.ItemIdFlag           = NoYes::Yes;
    inventDimParm.InventLocationIdFlag = NoYes::Yes;
    inventDim.InventLocationId         = 'РЦ';//_inventParameters.DistributionCenter;

    inventSum = InventSum::findSum(_itemId,
                                   inventDim,
                                   inventDimParm,
                                   InventSumFields::All);

    dcOnHand = inventSum.availPhysical();

   tmpDim   =  InventDim::findOrCreateInventLocationId(_inventLocationId);
    invTrans =  (select /*firstonly*/ sum(qty) from inventTrans order by TransRefID desc where inventTrans.ItemId == _itemId
                               && inventTrans.inventDimId == tmpDim.inventDimId
                               && inventTrans.TransType == InventTransType::Purch
                               && inventTrans.StatusReceipt == StatusReceipt::Ordered
                               && inventTrans.DatePhysical == str2date("",123)  ).Qty
                               && inventDim.RecId != 68956563
                               ;

    purch    =  InventTrans::findRecId( (select /*firstonly*/ sum(qty) from inventTrans order by TransRefID desc where inventTrans.ItemId == _itemId
                               && inventTrans.inventDimId == tmpDim.inventDimId
                               && inventTrans.TransType == InventTransType::Purch
                               && inventTrans.StatusReceipt == StatusReceipt::Ordered
                               && inventTrans.DatePhysical == str2date("",123)  ).RecId
                               && inventDim.RecId != 68956563);
    purchTable = PurchTable::find(purch.TransRefId);
    if(purchTable.createdDate < dat){
        invTrans = 0;
    }

    if (_inventLocationId != _inventParameters.DistributionCenter)
    {

   while select inventDim {

    if(inventdim.RecId != 32171 || inventdim.RecID != 2685644 || inventdim.RecID != 81579138 || inventDim.RecId != 68956563){

      inventDimParm = null;
        inventSum = InventSum::findSum(_itemId,
                                       inventDim,
                                       inventDimParm,
                                       InventSumFields::All);


   }
 }
    }
    onHand  = inventSum.availPhysical();
   // ordered = inventSum.Ordered;
    //ordered = invTrans;

    return [dcOnHand, onHand, ordered];
}
А конкретнее в ...

X++:
 while select inventDim {

    if(inventdim.RecId != 32171 || inventdim.RecID != 2685644 || inventdim.RecID != 81579138 || inventDim.RecId != 68956563){

      inventDimParm = null;
        inventSum = InventSum::findSum(_itemId,
                                       inventDim,
                                       inventDimParm,
                                       InventSumFields::All);


   }
чтобы не делал в результате условие "inventdim.RecId != 32171 || inventdim.RecID != 2685644 || inventdim.RecID != 81579138 || inventDim.RecId != 68956563" - не выполняется помогите понять де тут грабли
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
2 while select или join? _scorp_ DAX: Программирование 9 23.01.2009 16:02
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
gatesasbait: Reverse keyword on Select Statements Blog bot DAX Blogs 0 08.02.2008 00:10
Fred Shen: Always use recId to know if a select statement returns a record Blog bot DAX Blogs 0 28.10.2006 16:40
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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