Сделал пример по 2 полям TestInt и TestStr через OR-условие.
Если TestTable1 содержит записи
А TestTable2 содержит
То следующий джоб вернёт
Прикрутите его к executeQuery() и должно заработать.
X++:
static void Job44(Args _args)
{
Query query = new Query();
QueryBuildDataSource qbds1, qbds2;
QueryRun qr;
TestTable2 tt2;
;
qbds1 = query.addDataSource(tablenum(TestTable1));
qbds1.name('T1');
qbds2 = qbds1.addDataSource(tablenum(TestTable2));
qbds2.name('T2');
qbds2.addRange(fieldnum(TestTable2, DataAreaId)).value(strfmt('((%1.%3==%2.%3) || (%1.%4==%2.%4))',
qbds1.name(),
qbds2.name(),
fieldstr(TestTable1, TestInt),
fieldstr(TestTable1, TestStr)
));
qr = new QueryRun(query);
while (qr.next())
{
tt2 = qr.getNo(2);
info(strfmt("%1 - %2", tt2.TestInt, tt2.TestStr));
}
}