2016-06-02 5 views
0

Я использую функцию слияния каталогов в Word 2010 для создания отформатированного документа (требований) с использованием электронной таблицы Excel 2010 в качестве источника данных.Как документировать шаблоны слияния почты Microsoft Word?

Вещи работают, но у меня есть компактный беспорядок скобок, отформатированные отдельные символы и поля с очень маленьким пробелом (так как это изменит мой вывод). Я вставил поля с CTRL-F9, а Word рассматривает их как свои собственные объекты, а не отдельные символы.

Осложнений приходят от того, много условных полей, некоторые из которых вложены, и не имеют типичные реплики, что большинство коды имеет для просмотра вложенности структуры (разрывы строк, отступы и т.д.)

Есть ли простой способ документировать код шаблона слияния изнутри документа? Или мне нужно будет поддерживать отдельный текстовый файл, если я хочу использовать пробелы и другие подсказки для чтения?

ответ

2

Вещи, которые вы можете сделать, чтобы помочь в документации по коду поля, включают следующее. Но есть немало ошибок, что усложняет ответ. Я попытался их покрыть ниже.

  1. Использование форматирования символов, таких как знаки абзацев внутри кода поля брекеты для улучшения компоновки
  2. типы кода Используйте поля с пустыми результатами, таких как «SET», чтобы вставить документации
  3. Используйте скрытый текст внутри поля кодов вставка документация
  4. Удалить из кАВЫЧКИ (") символы, которые не являются абсолютно
    необходимы

Пример (1):

Если у вас есть что-то вроде:

{ IF { MERGEFIELD A } = { bookmarka } "{ MERGEFIELD B }" "{ IF { MERGEFIELD C } = { bookmarkb } "result2" "result3" }" } 

Тогда вы можете заложить его, как это, не изменяя результат полей IF:

{ IF { MERGEFIELD A } = { bookmarka } 
    "{ MERGEFIELD B }" 
    "{ IF { MERGEFIELD C } = { bookmarkb } 
    "result2" 
    "result3" }" } 

, нажав после { bookmarka } и нажав Enter, чтобы ввести нормальный знак слова Word, затем вставив некоторые пробелы перед символом ЦИТАТЫ.

Различные люди могут выбирать разные шаблоны отступов и способы борьбы с закрытием «}». В этой области нет стандартов или широко используемых традиций, как, например, с кодом C.

Существует недостаток. Каждый раз, когда вы переключаетесь между полевыми кодами и представлениями результатов в поле, Word может перепечатываться в длинном документе, и есть вероятность, что вы «потеряете место» в коде.

Примером (2) является то, что вы можете вставить поле {SET} во многих местах вашего кода (но не все) и поместить почти любой текст после части «SET variablename». Или вы можете определить закладку под названием «REMARK» («КОММЕНТАРИЙ» кажется слишком легко запутанным со встроенным кодом поля КОММЕНТАРИИ)

, например.

{ SET REMARK I wouldn't use "COMMENT" } 

или положить

{ SET REMARK "" } 

в начале кода используйте

{ REMARK I wouldn't use "COMMENT" } 

{ REMARK because it might be confused with the "COMMENTS" field } 

Просто имейте в виду, что вы не можете поместить код поля абсолютно в любом месте вашего кода поля «block», потому что в некоторых местах будет изменена внутренняя интерпретация поля в полевом кодировании. например

{ IF 1 = 0 { MERGEFIELD X } { MERGEFIELD Y } } 

всегда должен вставить значение { MERGEFIELD Y }

но

{ IF 1 = 1 { MERGEFIELD X }{ REMARK insert X } { MERGEFIELD Y } } 

бы вставить результат { REMARK insert X }

Вы можете использовать

{ IF 1 = 1 "{ MERGEFIELD X }{ REMARK insert X }" { MERGEFIELD Y } } 

или в данном случае,

{ IF 1 = 1 { MERGEFIELD X { REMARK insert X } } { MERGEFIELD Y } } 

В пункте (3) Слово вообще игнорирует скрытый текст в поле кодов, так что вы можете использовать скрытый текст для вставки документации. Но опять же, вы должны быть осторожны, когда вы это выразите. Например, этот подход бесполезен для типов полей, которые обычно обозначаются как «Скрытые», такие как TC и XE. Лично я не думаю, что идея вставить документацию, скрывая ее, идеальна - совершенно независимо от чего-либо еще, было бы очень легко удалить, даже не зная, что она есть. Но это может быть сделано.

Что касается пункта 4, то, как Microsoft Word вставляет некоторые типы полей, а документация (такая как она есть) для «языка кода поля» означает, что существует традиция окружения некоторых вещей символами ЦИТАТЫ. Примеры обычно показывают это в IF поля ...

{ IF comparand-1 operator comparand-2 "result if true" "result if false" } 

В этом конкретном случае, вы должны были бы кавычки, но если «результат, если оно истинно» или «результат, если ложно» либо одно слово (как как Word) или результат одного кода поля, тогда вы можете опустить кавычки, например

{ IF comparand-1 operator comparand-2 true false } 

или

{ IF comparand-1 operator comparand-2 { REF bookmarka } { REF bookmarkb } } 

Лично я предпочитаю использовать кавычки, потому что это шаблон, который многие пользователи знакомы, и если вы измените код поля каким-то образом вы не» t нужно решить, нужно ли повторно вставлять метки квотирования и т. д. Но это только мое предпочтение. В случае, когда у вас есть вложенные поля IF, в частности, вы очень часто имеете отдельные коды полей в качестве результатов, и кавычки, вероятно, на самом деле не повышают ясность.

Вы также должны помнить, что в некоторых случаях вы должны окружать поля кавычками. Например, если вы хотите, чтобы два значения сравнивались как строки, по крайней мере, вы должны их процитировать.

Например, предположим, что у вас есть mergefield X, которое может содержать любую текстовую строку, и вы хотите сравнить эту строку с «3».Если вы используете

{ IF { MERGEFIELD X } = 3 True False } 

тогда, если X является "1 + 2", "3", "4-1", вы получите истинный результат. В этом случае вам нужно

{ IF "{ MERGEFIELD X }" = 3 True False } 

и если «3» была заменен на каком-то переменное поле, вы, вероятно, потребуются

{ IF "{ MERGEFIELD X }" = "{ theVariable }" 3 True False } 

тенденция в Word для оценки простых арифметических выражений в таких случаях не единственное, что может пойти не так. Если {MERGEFIELD X} оценивает имя закладки, которую вы определили в документе, Word имеет тенденцию к разыменованию и использует значение этой закладки вместо значения поля MERGEFIELD, если вы не окружите { MERGEFIELD X } кавычками ,