Написал такой запрос в X++
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;
;
// inventDim = this.inventDim();
query = new Query();
qbsInventDim = query.addDataSource(tablenum(InventDim));
qbsInventTrans = qbsInventDim.addDataSource(tablenum(InventTrans));
// qbsInventTrans = qbsInventDim.addDataSource(tablenum(InventTrans));
qbsInventTrans.relations(true);
qbsInventTrans.clearLinks();
qbsInventTrans.addLink(fieldnum(InventDim,inventDimId),fieldnum(InventTrans,inventDimId));
qbsInventTrans.joinMode(JoinMode::InnerJoin);
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,ItemId));
qbsInventTrans.addSelectionField(fieldnum(InventTrans,Qty),SelectionField::Sum);
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));
}
}
}
Когда запускается, в диалоговом окне Запрос в закладке СОРТИРОВКА имеется только поле Размер в таблице Складская аналитика, а поле Номенклатура в таблице Складские проводки отсутствует, в результате выводится только агрегатная сумма для размера, а не для номенклатуры и размера ...
Подскажите пожалуйста, в чем проблема ?
Заранее спасибо.