Есть 2 формы:
В первой выбирается номер отгрузки DeliveryId
Во второй (датасорс SalesTable) - отображаются заказы для которых указан этот DeliveryId:
void fillLine()
{
deliveryQBR.value(TmpDelivery.DeliveryId);
SalesTable_ds.executeQuery();
}
теперь хотелось бы, чтобы выбирались лишь те заказы по которым есть сформированные, но не зарегистрированные отгрузочные накладные:
PHP код:
query = new Query();
qbST = query.addDataSource(tableNum(SalesTable));
qbST.orderMode(OrderMode::GroupBy);
qbST.addSortField(fieldNum(SalesTable, SalesId));
qbST.addSortField(fieldNum(SalesTable, SalesName));
qbST.addSortField(fieldNum(SalesTable, SalesPoint));
qbST.addRange(fieldNum(SalesTable, DeliveryId)).value(TmpDelivery.DeliveryId);
qbPT = qbST.addDataSource(tableNum(SalesPickingListJournalLine));
qbPT.addLink(fieldNum(SalesTable, SalesId), fieldNum(SalesPickingListJournalLine, SalesId));
qbPT.joinMode(JoinMode::INNERJOIN);
qbPT.fetchMode(0);
qbPT.addRange(fieldNum(SalesPickingListJournalLine, Updated)).value('No');
qbPT.addRange(fieldNum(SalesPickingListJournalLine, DeliveryDate)).value(deliveryDate);
SalesTable_ds.query(query);
SalesTable_ds.executeQuery();
Показывается то что надо, но нельзя в строках 2-й формы у заказов менять DeliveryId - Axapta ругается что не заполнены счет, валюта и т.д. - все правильно так как из-за группировки выбираются не все данные.
Как это можно обойти не формируя временную таблицу?