Еcmь некий метод Query:
public Query initQuery()
{
queryBuildDataSource qBDS;
queryBuildRange qBRange;
;
// создаём объект динамического запроса
query = new Query();
//определяем источник данных
qBDS = query.addDataSource(tablenum(RAssetMoveHist));
qBRangedat = qBDS.addRange(fieldnum(RAssetMoveHist, ChangeDate));
qBDS = qBDS.addDataSource(tablenum(RAssetTable));
//устанавливаем связь
qBDS.addLink(fieldnum(RAssetMoveHist, AccountNum),fieldnum(RAssetTable, AccountNum));
// определяем поле-критерий
qBDS.addRange(fieldnum(RAssetTable, HB_AClassCode_OS));
qBRange = qBDS.addRange(fieldnum(RAssetTable,AssetType));
qBRange.value(queryvalue(RassetType::Smallvalueable));
qBDS = query.dataSourceNo(1);
INFO(qBDS.toString());
Return query;
}
Он создаёт запрос вида:
SELECT * FROM RAssetMoveHist JOIN * FROM RAssetTable WHERE RAssetMoveHist.AccountNum = RAssetTable.AccountNum AND ((AssetType = МБП))
Вопрос: как программно сформировать Query вида:
SELECT * FROM RAssetMoveHist JOIN * FROM RAssetTable WHERE RAssetMoveHist.AccountNum = RAssetTable.AccountNum
AND (AssetType = МБП)) AND
(RAssetMoveHist.OldEmployee = RAssetTable.Responsible OR RAssetMoveHist.NewEmployee = RAssetTable.Responsible)
Поясню: вся проблема в условии
OR
Спасибо!