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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.01.2012, 11:43   #1  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Запрос к InventSum с InventLocationId
*** Вынесено из InventLocationId в InventTrans, sukhanchik ***
Здраствуйте ,

Мы сделали InventLocationId в InventSum'е . Помогло и облегчило дело с рапоратми по складам .

Хотел попросить совета . Бухалтерия требует отчетов складов , в которых были остатки в начяле периода и остатки в конце .

Я сделаю такое в одной из своей классе :
X++:
Query qInvSum1( Query qry )
{
   QueryBuildDataSource    qBSSum, qBSTrn;
   ;

   qBSSum = qry.dataSourceTable( TableNum( InventSum ) );
   qBSSum.addSortIndex( indexnum( InventSum, LocateItemIdx ) );
   qBSSum.indexIsHint( true );

   qBSTrn = qBSSum.addDataSource( tableNum( InventTrans ) );
   qBSTrn.addLink( fieldNum( InventTrans, InventDimId ), fieldNum( InventSum, InventDimId ) );
   qBSTrn.addLink( fieldNum( InventTrans, ItemId ), fieldNum( InventSum, ItemId ) );
   qBSTrn.addSortIndex( indexNum( InventTrans, DimIdIdx ) );
   qBSTrn.indexIsHint( true );
   qBSTrn.joinMode( JoinMode::ExistsJoin );
   qBSTrn.firstOnly( true );
   qBSTrn.fetchMode( QueryFetchMode::One2One );
   qBSTrn.addRange( fieldNum( InventTrans, DatePhysical ) ).value( queryRange( dBgn, dateMax() ) );
   return qry;
}
Обнаружив такое , я подсчитаю приход , отход товара и имею цифры в конце периода и в начяле периода .

Дело в том что некоторые товары из InventSum может быть неподвигались и в InventTrans'e нету записей с ними . Тогда я вынужден сделать второй запрос :

X++:
Query qInvSum2( Query qry )
{
   QueryBuildDataSource    qBSSum, qBSTrn;
   ;

   qBSSum = qry.dataSourceTable( TableNum( InventSum ) );
   qBSSum.addSortIndex( indexnum( InventSum, LocateItemIdx ) );
   qBSSum.indexIsHint( true );
   qBSSum.addRange( fieldNum( InventSum, PhysicalInvent ) ).value( queryvalue( '!= 0' ) );

   qBSTrn = qBSSum.addDataSource( tableNum( InventTrans ) );
   qBSTrn.addLink( fieldNum( InventTrans, InventDimId ), fieldNum( InventSum, InventDimId ) );
   qBSTrn.addLink( fieldNum( InventTrans, ItemId ), fieldNum( InventSum, ItemId ) );
   qBSTrn.addSortIndex( indexNum( InventTrans, DimIdIdx ) );
   qBSTrn.indexIsHint( true );
   qBSTrn.joinMode( JoinMode::NoExistsJoin );
   qBSTrn.firstOnly( true );
   qBSTrn.fetchMode( QueryFetchMode::One2One );
   qBSTrn.addRange( fieldNum( InventTrans, DatePhysical ) ).value( queryRange( dBgn, dateMax() ) );
   qBSTrn.addRange( fieldNum( InventTrans, DatePhysical ) ).value( queryvalue( strfmt( ">=%1", dBgn ) ) );

   return qry;
}
Но ето неудобно . Подскажите пожалуйста , как сделать запрос чтобы за один раз можно было взять всех записей , так со InventTrans'ом и так и без него ...

Заранее спасибо !

Последний раз редактировалось sukhanchik; 06.01.2012 в 00:20.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Sustained Engineering: Fields modifiedDateTime and modifiedBy on Table InventSum Blog bot DAX Blogs 0 30.12.2010 00:12
DAX 2009 InventSum Кнопка запрос - ошибка f18 DAX: Программирование 0 09.04.2010 14:51
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Ошибка при разноске складских движений Starling DAX: Администрирование 9 12.10.2007 14:21
Временная таблица + RLS leshy DAX: Программирование 6 27.04.2006 12:39

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

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

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