Немного разгреб дела.
Продолжим разговор?
В Аксапте условие "или" по одному полю делается с помощью "," в Range.Value(). Поэтому вопрос по одному полю не стоит. Так?
Как в Query можно задать условие "или" по двум полям (Field1=Value1 or Filed2=Value2) аналогичное
Цитата:
while select * from table1
where table1.field1 == 15 ||
table1.field2 == 20
{
element.execute(1)
}
PlasticinE, так? Я правильно сформулировал?
Насколько я понимаю, Query в Аксапте реализует концепцию QBE - query by example. Пример реализации - конструктор запросов в Access (кстати, в первый раз реализацию QBE я видел в Paradox'е. Там тоже выразить или было достаточно тяжело). В Access'е для того, чтобы добавить условие или надо добавить строчку.
Первое что приходит в голову, это то, что datasource в Аксапте соответствует одной строчке в конструкторе запросов Access'а. Значит, чтобы "добавить вторую строчку" надо добавить datasource.
Развиваем мысль.
Делаем запрос с двумя связанными датасоурсами. Оба датасоурса используют одну и ту же таблицу. В первом датасоурсе Range по Field1, а во втором датасоурсе Range по Field2.
Тип соединения датасорусов outerJoin. Что-нибудь в этом духе.
Нет сил сейчас проверить. Но думаю, что рыть надо примерно в этом направлении.
Недостатки подхода - вместо однопроходного селекта получается двухпроходной (что не очень то и хорошо).
Достоинства - можно работать с Query. Query можно показывать пользователю. Query выполняет разбор условий. Query легко модифицируется.
Альтернатива - подсунуть в query вручную написанный SQL-запрос. Но тогда никаких разборов выполняться не будет. И, видимо, будут проблемы с like (судя по сообщению PlasticinE).
А можно и к вам вопрос?
PlasticinE, AlGol, А в каких случаях может понадобится поиск с ИЛИ, да еще и с использованием Like? Неужто для поиска контрагента по частичному коду ИЛИ частичному названию? Если да, то зачем? Или есть другая задача?
max, а где в руководстве об этом написано? Можешь ткнуть?