|
![]() |
#1 |
Ищущий знания...
|
проверил у себя, вот получился рабочий вариант построения запроса, подцепились все датасорсы
![]() X++: queryBuildDataSource = query.addDataSource(tablenum(InventTable)); queryBuildRange = queryBuildDataSource.addRange(fieldnum(InventTable, ItemId)); queryBuildRange.value(Criteria1); //addn new data source queryBuildDataSource1 = queryBuildDataSource.addDataSource(tablenum(InventItemLocation)); queryBuildDataSource1.addLink(fieldnum(InventTable, ItemId),fieldnum(InventItemLocation,ItemId)); queryBuildDataSource1.joinMode(JoinMode::InnerJoin); queryBuildDataSource1.addRange(fieldnum(InventItemLocation, wMSPickingLocation)).value(criteria2); queryBuildDataSource1.fetchMode(QueryFetchMode::One2One); queryBuildDataSource2 = queryBuildDataSource1.addDataSource(tablenum(InventDim)); queryBuildDataSource2.addLink(fieldnum(InventItemLocation,InventDimId),fieldnum(InventDim,InventDimId)); queryBuildDataSource2.joinMode(JoinMode::InnerJoin); queryBuildDataSource2.addRange(fieldnum(InventDim, InventLocationId)).value(criteria3); queryBuildDataSource2.fetchMode(QueryFetchMode::One2One); //вот тут join получается тока для InventDim либо InventTable, а мне нужно что б брал //значение с 2 таблиц сразу InventDim.InventDimId i InventTable.ItemId queryBuildDataSource3 = queryBuildDataSource.addDataSource(tablenum(InventSum)); queryBuildDataSource3.addlink(fieldnum(InventTable, ItemId),fieldnum(InventSum,ItemId)); queryBuildDataSource3.addlink(fieldnum(InventDim, InventDimId),fieldnum(InventSum,InventDimId)); queryBuildDataSource3.joinMode(JoinMode::InnerJoin); queryBuildDataSource3.addRange(fieldnum(InventSum, AvailPhysical)).value(strfmt("%1",">0")); queryBuildDataSource3.fetchMode(QueryFetchMode::One2One);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: stalker25 (1). |