Показать сообщение отдельно
Старый 15.11.2005, 13:44   #30  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
2 rkrivov:
Развернувшаяся здесь дискуссия по поводу использования массивов полей в Range сама по себе интересна и познавательна... Но позволю себе еще раз обратить Ваше внимание на изначальную постановку задачи. Возможно, что Вы либо ошиблись при построении запроса, либо зря тратите время, ковыряясь в расширенных диапазонах, поскольку в таком виде задача решается стандартным путем.

Процитирую свое сообщение:
Цитата:
Сообщение от Ruff
...сдается мне, что в Ваш запрос закралась какая-то бяка... Попытка оптимизировать (по правилу поглощения, кажется) условие:

"(%2 != %1) && ((%2 == %1) || (!%1))"

привела к следующему:

"(%2 != %1) && (!%1)"

Что по сути означает "первый параметр всегда пустой, а второй - всегда непустой". Может быть это именно то, что Вам и нужно, но зачем тогда такие сложные сравнения?
Чтобы стало совсем понятно, к чему я прицепился , последнюю строку можно преобразовать далее:

"(%2) && (!%1)" или "(%2 != "") && (%1 == "")"

Таким образом, остается просто добавить к запросу два простых Range с условиями (!"") и ("") соответственно (насколько я понимаю, это будут Dimension[i], причем из разных DataSource-ов). В любом случае добавить их "по одиночке" (в разные Range) не составит труда, и эти условия объединятся по И.

Хотя, на самом деле мне кажется, что Вы что-то упустили при построении запроса, вряд ли все так просто
__________________