22.06.2006, 13:53 | #1 |
Участник
|
Установка условия ИЛИ (OR) в Query
Е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 Спасибо! |
|
22.06.2006, 13:56 | #2 |
Axapta
|
|
|
22.06.2006, 14:19 | #3 |
Участник
|
|
|
22.06.2006, 14:28 | #4 |
Участник
|
А разницы нет, что подставлять туда > 0, что поле из другой таблицы.
Главное учесть синтаксис - использовать имя датасорса и Аксаптовские операторы: OR-запрос выдает ошибку |
|