Показать сообщение отдельно
Старый 08.09.2005, 20:02   #20  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Нет, там по другому. На сервер пойдет два запроса результаты которых будут объеденены на клиенте. Обратите внимание table1 там добавляется два раза. Т.е получится следующее

datasource1(table1) - datasource3(table1)
--------------------------------------
table1.itemid = table2.itemId - пусто
table1.itemid = table2.itemId - пусто
table1.itemid = table2.itemId - пусто
пусто - table1.itemid = table3.itemId
пусто - table1.itemid = table3.itemId
пусто - table1.itemid = table3.itemId

По поводу view я уже и сам понял, просто не учел про ExistsJoin
Тут есть замечание - необходимо не Table1.ItemId Exists(), а Table1.Itemid IN. Как его задать - не предствляю себе.

Если задавать ExistsJoin, то получается
PHP код:
    Q.addDataSource(tablenum(Table1), "t1");
    
Q.dataSourceTable(tablenum(Table1)).addDataSource(tablenum(View1), "v1");
    
Q.dataSourceTable(tablenum(View1)).joinMode(JoinMode::ExistsJoin);
    
Q.dataSourceTable(tablenum(View1)).addRange(fieldnum(view1itemid1)).value("((v1.itemId1 == t1.itemId) || (v1.itemId2 == t1.itemId))"); 
Но тут, как не раз было замечено, встает вопрос производительности
__________________
Axapta v.3.0 sp5 kr2