Цитата:
Сообщение от
Gustav
Хм, связи "==" реализуются посредством addLink, а все прочие связи - посредством "addRange".
Если я все правильно понял, то получается как-то вот так?
X++:
query = new Query();
qbds = query.addDataSource(tableNum(LedgerTrans));
qbds.orderMode(OrderMode::GroupBy);
qbds.addSelectionField(fieldNum(LedgerTrans, AmountMST), SelectionField::Sum);
qbr = qbds.addRange(fieldNum(LedgerTrans, AccountNum));
qbr.value("68.000");
qbr = qbds.addRange(fieldNum(LedgerTrans, TransDate));
qbr.value(SysQuery::range(01\01\2010, 31\03\2010));
qbdsOffset = qbds.addDataSource(tableNum(LedgerTrans));
qbdsOffset.addSelectionField(fieldNum(LedgerTrans, tableId));
qbdsOffset.joinMode(JoinMode::INNERJOIN);
qbdsOffset.relations(false);
qbdsOffset.addLink(fieldnum(LedgerTrans, BondBatch_RU), fieldnum(LedgerTrans, BondBatch_RU));
qbdsOffset.addLink(fieldnum(LedgerTrans, BondBatchTrans_RU), fieldnum(LedgerTrans, BondBatchTrans_RU));
qbr = qbdsOffset.addRange(fieldNum(LedgerTrans, Crediting));
qbr.value('(' + fieldStr(LedgerTrans, Crediting) + '!=' + qbds.name() + '.' + fieldStr(LedgerTrans, Crediting) +')');
qbr = qbdsOffset.addRange(fieldNum(LedgerTrans, AccountNum));
qbr.value("19.320");
queryRun = new QueryRun(query);