Тема: UNION
Показать сообщение отдельно
Старый 30.09.2003, 10:23   #13  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Так, хорошо.
ИЛИ между линками разобрались как делается. Путём добавления поля-флажка. Но приведу небольшой примерчик:
PHP код:
        qb query.addDataSource(
                 
tablenum(InventTable));
        
qb2 qb.addDataSource(
                 
tablenum(InventTable));
        
qb2.addRange(fieldnum(InventTableItemtype)).valuequeryvalueItemType::BOM));
        
qb2.relations(false);
        
qb2.addLink(fieldNum(InventTable,ItemId),fieldNum(InventTable,ItemId));
        
qb2.joinModeJoinMode::InnerJoin);
/*        qb2 = qb.addDataSource(
                 tablenum(InventTable));
        qb2.addRange(fieldnum(InventTable, Itemtype)).value( queryvalue( ItemType::Item));
        qb2.relations(false);
        qb2.addLink(fieldNum(InventTable,ItemId),fieldNum(InventTable,ItemId));
        qb2.joinMode( JoinMode::InnerJoin);*/ 
вот почему если к главному датасоурсу добавить только один со связью InnerJoin , то всё нормально - отобразятся только Спецификации(ItemType::BOM). А если убрать заремаривание и добавить второй, то отобразятся все записи. Как будто нельзя добавлять два дочерних датасоурса со связями InnerJoin. Или может в них ещё какие свойства надо заполнить.
Цитата:
Единственное средство, которое приходит на ум - временные таблицы.
Да, тоже вариант. Хотя воспринимается как дубовый, но порой без него никак.
__________________
Дмитрий