Что я хочу сделать, это:
{ IF v1 = 0 OR v2 = 0 "Lorem Ipsum.." }
Как написать OR в синтаксисе Word слияния?
Я особенно прошу Word 2013 - я думаю, что синтаксис изменился в 2013 году.
Что я хочу сделать, это:
{ IF v1 = 0 OR v2 = 0 "Lorem Ipsum.." }
Как написать OR в синтаксисе Word слияния?
Я особенно прошу Word 2013 - я думаю, что синтаксис изменился в 2013 году.
Если v1, v2 являются полями MERGE, в общем случае вам нужны {MERGEFIELD v1} и {MERGEFIELD v2}. Затем вы можете сделать ИЛИ, используя такую конструкцию:
{ IF { =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) } = 0 "Lorem Ipsum.." }
(Как обычно, все {} должны быть специальными парами фигурных скобок кода поля, которые вы можете вставить в Windows Word, используя ctrl-F9.
Или для коротких текстовых результатов вы можете использовать числовой переключатель изображения для получения правильного результата, например,
{ =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) }) \#"'';'';'Lorem Ipsum..'" }
Для большего количества сравнений, вам нужно вложить OR
В этом случае вы также можете сделать такие вещи, как
{ IF { =ABS({ MERGEFIELD v1 })+ABS({ MERGEFIELD v2 }) } = 0 "Lorem Ipsum.. }
Я не верю, что в Word 2013 в этой области изменился синтаксис, но если у вас есть пример такой разницы, пожалуйста, поделитесь!
Первый пример выше, я думаю, по ошибке. Второй выглядит правильно.
СРАВНЕНИЕ дает 1, если верно; 0 если ложь = ИЛИ тоже так работает - арифметически.
Так что, если любое из ваших предложений COMPARE верно, OR для них даст 1.
Вы хотите вывести "Lorem Ipsum", если любое из предложений COMPARE верно.
Поэтому IF следует сравнить с 1, а не с 0.
В качестве альтернативы, по сравнению с 0, "Lorem Ipsum" может быть выведен для совпадения FALSE.
Я думаю, что это другая ошибка: я думаю, что IF ожидает как истинные, так и ложные аргументы для вывода. {IF <condition
> <true-text
> <false-text
>}.
Более сложные логические условия можно выразить экономически (без вложенности), снова творчески используя арифметику. Если, скажем, достаточно, чтобы какой-либо из трех пунктов был истинным, сумма их истинных значений может использоваться в качестве условия для IF. Если все ложно, результат будет нулевым. Общая арифметика может применяться в полях Word с помощью {=}. Например:
{IF {=({COMPARE {MERGEFIELD v1} = 0} + {COMPARE {MERGEFIELD v2} = 0} + {COMPARE {MERGEFIELD v3} = 0})} = 0 "None are zero." "At least one is zero."}