Показать сообщение отдельно
Старый 23.06.2008, 09:55   #1  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Разница в работе селектов/запросов в джобах и на формах
В джобе:
Код:
SalesPickingListJournalTable    spt;
SalesPickingListJournalLine     spl;
InventTable                     it;
;
while select spt
where spt.BD_InventJournalId != ""
        join spl
        where spl.PickingListId == spt.PickingListId
            exists join it
            where it.ItemId == spl.Itemid
            && it.ItemType == ItemType::Service
            {
                info(spt.PickingListId);
            }
Результат верный!

На форме поместил один dataSource SalesPickingListJournalTable, в init источника данных сделал следущее:
Код:
QueryBuildDataSource    qSPT, qSPL, qIT;

    super();

    qSPT = this.query().addDataSource(tablenum(SalesPickingListJournalTable));

    qSPL = qSPT.addDataSource(tablenum(SalesPickingListJournalLine));
    qSPL.addLink(fieldnum(SalesPickingListJournalTable, PickingListId),
        fieldnum(SalesPickingListJournalLine, PickingListId));

    qIT = qSPL.addDataSource(tablenum(InventTable));
    qIT.addRange(fieldnum(InventTable, ItemType)).value(queryValue(ItemType::Service));
    qIT.addLink(fieldnum(SalesPickingListJournalLine, ItemId),
        fieldnum(InventTable, ItemId));
    qIT.joinMode(JoinMode::ExistsJoin);
При просмотре запроса:
Код:
SELECT * FROM SalesPickingListJournalTable JOIN * FROM SalesPickingListJournalLine WHERE SalesPickingListJournalTable.PickingListId = SalesPickingListJournalLine.PickingListId EXISTS JOIN * FROM InventTable WHERE SalesPickingListJournalLine.Itemid = InventTable.ItemId AND ((ItemType = Услуга))
Но вот в гриде вываливается все

Последний раз редактировалось Dronas; 23.06.2008 в 09:59.