![]() |
#6 |
Участник
|
Не знаю - вот этот код у меня лично все вытаскивает.
Во-первых между таблицами запроса нет relation в AOT поэтому лучше пользоваться AddLink. Во-вторых: вы агрегируете поля первого источника данных, а пытаетесь взять одно из полей второго, а где его агрегация ? querybuildDATASOURCE QBD, qbi; query query = NEW QUERY(); QUERYRUN qr; SalesPickingListJournalLine _TMP; INVENTTABLE _tmpGr; ItemId ItemId; ItemName ItemName; ItemGroupiD ItemGroup; STR 10 QTY; ; qbd = query.adddatasource(tableNum(SalesPickingListJournalLine)); qbd.orderMode(OrderMode::GroupBy); qbd.addSortField(fieldNum(SalesPickingListJournalLine, ItemId)); qbd.addSortField(fieldNum(SalesPickingListJournalLine, Name)); qbd.addSelectionField(fieldNum(SalesPickingListJournalLine,InventQty), SelectionField::Sum); qbi = qbd.addDataSource(tableNum(InventTable)); //qbi.relations(true); qbi.addLink(fieldNum(SalesPickingListJournalLine, itemid), fieldNum(inventTable, itemid)); qbi.joinMode(JoinMode::INNERJOIN); qbi.fetchMode(0); qbi.orderMode(OrderMode::GroupBy); qbi.addSortField(fieldNum(inventTable, ItemGroupId)); qr = new QueryRun(query); while (qr.next()) { _tmp = qr.get(TableNum(SalesPickingListJournalLine)); _tmpGr = qr.get(TableNum(InventTable)); ItemId = _tmp.ItemId; ItemName = _tmp.Name; ItemGroup = _tmpGr.ItemGroupId; qty = num2str(_tmp.InventQty, 12, 2, 2, 3); info(ItemId); info(ItemName); info(ItemGroup); info(qty); info('-----------------------------'); } |
|