|
|
#1 |
|
Участник
|
Разница в работе селектов/запросов в джобах и на формах
В джобе:
Код: 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. |
|
|
|
|
#2 |
|
Участник
|
Цитата:
Если свойствами вы установили что форма не должна сама создавать запрос, то скорее всего Query не инициализирован и вы добавляете таблицу к неинициализированному запросу. Если вы не меняли свойства датасорса, то форма сама уже создала запрос. А вы к нему ДОБАВЛЯЕТЕ еще одну таблицу. Либо пересоздавайте query полностью, либо добавляйте только новые таблицы к суще существующим. |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от mazzy
этой командой вы заставляете ДОБАВИТЬ таблицу к УЖЕ СУЩЕСТВУЮЩЕМУ запросу.
Если свойствами вы установили что форма не должна сама создавать запрос, то скорее всего Query не инициализирован и вы добавляете таблицу к неинициализированному запросу. Если вы не меняли свойства датасорса, то форма сама уже создала запрос. А вы к нему ДОБАВЛЯЕТЕ еще одну таблицу. Либо пересоздавайте query полностью, либо добавляйте только новые таблицы к суще существующим.
|
|
|
|
|
#4 |
|
Участник
|
Может удалить? Все равно бесполезная тема
|
|
|
|
|
|