|
|
#1 |
|
Участник
|
Запрос к 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;
}Заранее спасибо ! Последний раз редактировалось sukhanchik; 06.01.2012 в 00:20. |
|
|