
Я делаю слияние писем и столкнулся с проблемой взаимодействия нумерованных списков и условных операторов if/then/else. Могут ли мне помочь эксперты по Microsoft Word? :-)
Представьте себе такой пронумерованный список:
1. You are awesome 2. You are not awesome 3. This is something else
Теперь представьте, что элементы, которые появляются рядом с #1-2, являются взаимоисключающими. Таким образом, есть два желаемых возможных результата после слияния почты:
ЖЕЛАЕМЫЙ ВЫХОД ДЛЯ УДИВИТЕЛЬНОГО СЛУЧАЯ
1. You are awesome 2. This is something else
ИЛИ
ЖЕЛАЕМЫЙ ВЫХОД ДЛЯ НЕ УДИВИТЕЛЬНОГО СЛУЧАЯ
1. You are not awesome 2. This is something else
Фактический вывод выглядит так:
РЕАЛЬНЫЙ ВЫХОД ДЛЯ УДИВИТЕЛЬНОГО СЛУЧАЯ
1. You are awesome 2. 3. This is something else
РЕАЛЬНЫЙ ВЫХОД ДЛЯ НЕУДАЧНОГО СЛУЧАЯ
1. 2. You are not awesome 3. This is something else
Вот код, который я использую:
{ IF {MERGEFIELD IS_AWESOME} = "x" "You are awesome"} } { IF {MERGEFIELD IS_NOT_AWESOME} = "x" "You are not awesome"} }
К этим строкам применен формат «нумерованного списка». (Я не знаю ни одного способа сделать так, чтобы элемент строки отображался в виде нумерованного списка без использования стандартной кнопки «нумерованный список».)
Я могу придумать обходной путь, в котором я использую вложенные операторы if для подавления пустых строк, объединяя все условия пронумерованных элементов 1-3. Но мой реальный пример имеет 12 строк, и количество операторов if-then будет экспоненциально большим.
Есть ли прямой способ заставить Microsoft Word сгенерировать желаемый мной результат?
Спасибо!
решение1
Я думаю, если вы включите соответствующие доходы в свою формулу, это сработает:
{ IF {MERGEFIELD IS_NOT_AWESOME} = "x" "You are not awesome<RET>"} }
потому что когда формула удаляет текст (ЕСЛИ не является истинным), возврат также удаляется, поэтому вы не получаете пустую строку с числом.
вам придется удалить ваши теперь уже «дополнительные» возвраты, и IF будут в одном непрерывном потоке, что визуально немного неудобно, но это должно работать; я уже использовал это раньше:
{ IF {MERGEFIELD IS_AWESOME} = "x" "You are awesome<RET>"} }{ IF {MERGEFIELD IS_NOT_AWESOME} = "x" "You are not awesome<RET>"} }