Подавление полей слияния текста и почты в Word на основе другого поля слияния - PullRequest
0 голосов
/ 11 октября 2019

Наша Студенческая информационная система (SIS) использует функцию слияния Word для создания пользовательских документов. Я пытаюсь воссоздать форму, предоставленную государством, и мне нужна помощь.

В документе у меня есть шесть «источников»: для каждого есть флажок, статическое текстовое описание и описание. поле. Я хочу отобразить шесть как отдельные строки, но если флажок для этой строки снят, я не хочу, чтобы эта строка отображалась вообще;Я также не хочу, чтобы здесь отображался флажок (он будет отображаться в другом месте). Эффект, который я ищу, - это таблица, в которой видимость каждой строки контролируется флажком, а пустые строки сворачиваются.

Когда я создаю документ, SIS создает начальный документ со всеми ссылками на поля. После небольшого массажа вот что у меня есть:

{ MERGEFIELD TableStart:REV_DATA_ROOT/StudentDocument \*MERGEFORMAT}
    { MERGEFIELD @CogS1??TYPE=CHECKBOX} Source 1 { MERGEFIELD @CogS1Desc}
    { MERGEFIELD @CogS2??TYPE=CHECKBOX} Source 2 { MERGEFIELD @CogS2Desc}
    { MERGEFIELD @CogS3??TYPE=CHECKBOX} Source 3 { MERGEFIELD @CogS3Desc}
    { MERGEFIELD @CogS4??TYPE=CHECKBOX} Source 4 { MERGEFIELD @CogS4Desc}
    { MERGEFIELD @CogS5??TYPE=CHECKBOX} Source 5 { MERGEFIELD @CogS5Desc}
    { MERGEFIELD @CogS6??TYPE=CHECKBOX} Source 6 { MERGEFIELD @CogS6Desc}
{ MERGEFIELD TableEnd:REV_DATA_ROOT/StudentDocument \*MERGEFORMAT}

Так что, если бы были отмечены только флажки для источника 1 и источника 5, отображались бы только эти две строки:

 Source 1   Et ultrices neque ornare aenean euismod elementum nisi quis.
 Source 5   Ultricies tristique nulla aliquet enim tortor at auctor urna.

(если описание будет перенесено на следующую строку, я поиграю с вкладками и висящим отступом, чтобы имитировать фактическую таблицу)

Чего я особенно хочу избежать, так это иметь пустую строку, где не отмечены флажки. Возможно ли это?

Редактировать: Когда я печатаю @ CogS1 и т. Д., Сам по себе, не устанавливая флажок типа, он печатает либо True, либо False, поэтому его можно использовать в IFзаявление, но я не получаю его на работу. Кроме того, в приведенном выше исходном коде я набрал один знак вопроса непосредственно перед «TYPE = CHECKBOX»;на самом деле это два вопросительных знака, и код был обновлен, чтобы отразить это.

1 Ответ

0 голосов
/ 15 октября 2019

Чтобы решить мою проблему, мне нужно было использовать поля слияния IF с возвратом каретки, встроенным в «истинные» результаты;Мне также нужно было не возвращать каретки между шестью полями слияния IF. Исходя из приведенного мною примера, вот что я в итоге сделал:

{IF {MERGEFIELD @CogS1} = "true" "Source 1: {MERGEFIELD @CogS1Desc}
"}{IF {MERGEFIELD @CogS2} = "true" "Source 2: {MERGEFIELD @CogS2Desc}
" ""}{IF {MERGEFIELD @CogS3} = "true" "Source 3: {MERGEFIELD @CogS3Desc}
" ""}{IF {MERGEFIELD @CogS4} = "true" "Source 4: {MERGEFIELD @CogS4Desc}
" ""}{IF {MERGEFIELD @CogS5} = "true" "Source 5: {MERGEFIELD @CogS5Desc}
" ""}{IF {MERGEFIELD @CogS6} = "true" "Source 6: {MERGEFIELD @CogS6Desc}
" ""}

...