А теперь, если так
X++:
static void Job103(Args _args)
{
InventDim inventDim;
InventTrans inventTrans;
Query query;
QueryBuildDataSource qbsInventTrans, qbsInventDim;
QueryBuildLink qbl;
QueryRun queryRun;
QueryBuildRange qbrInventSizeId, qbrStatusIssue, qbrTransType, qbrItemId;
Qty mQty;
;
query = new Query();
qbsInventTrans = query.addDataSource(tablenum(InventTrans));
qbsInventDim = qbsInventTrans.addDataSource(tablenum(InventDim));
qbsInventDim.relations(true);
qbrTransType = qbsInventTrans.addRange(fieldnum(InventTrans,TransType));
qbrTransType.value(queryvalue(InventTransType::Sales));
qbrStatusIssue = qbsInventTrans.addRange(fieldnum(InventTrans,StatusIssue));
qbrStatusIssue.value(queryValue(StatusIssue::OnOrder));
qbsInventDim.orderMode(OrderMode::GroupBy);
qbsInventDim.addSortField(fieldnum(InventDim, InventSizeId));
qbsInventTrans.orderMode(OrderMode::GroupBy);
qbsInventTrans.addSortField(fieldnum(InventTrans, ItemId));
qbsInventTrans.addSelectionField(fieldnum(InventTrans,Qty),SelectionField::Sum);
qbsInventTrans.addSelectionField(fieldnum(InventTrans,ItemId));
queryRun = new QueryRun(query);
if(queryRun.prompt())
{
while(queryRun.next())
{
inventTrans = queryRun.get(tablenum(InventTrans));
inventDim = queryRun.get(tablenum(InventDim));
info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty));
}
}
}
Т.е, просто изменение порядок таблицы InventTrans и InventDim в запросе, то выводятся сгруппированные данные по номенклатурам, а не по номенклатурам и размерам.
Мне кажется, что что - то неправильно имеено в кускочке кода
X++:
if(queryRun.prompt())
{
while(queryRun.next())
{
inventTrans = queryRun.get(tablenum(InventTrans));
inventDim = queryRun.get(tablenum(InventDim));
info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty));
}
Или я что - то ещё не понимаю ? Почему выводятяся только сгруппированные данные именно по полю родительского источника данных ?