2017-02-18 38 views
0

Я создание документ слияния с источником данных объекта, который имеет объект, содержащий эту структуру:Используя поле из tablestart в другом tablestart MS Word слияния

ID, FirstName, LastName, адрес, donationText, пожертвования

пожертвования является сам объект со следующими атрибутами:

donationType, donationAmount, donationDate

Документ слияния использует таблицу Mergefield TableStart и TableEnd для управления данными объектов. Например, чтобы использовать поля firstName и lastName, вы должны использовать TableStart следующим образом.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{MEREFIELD TableEnd:person} 

Поскольку пожертвования является объектом, вы должны использовать его с помощью TableStart/TableEnd для доступа этих полей.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 

{MERGEFIELD TableStart:donation} 
{MERGEFIELD donationType} 
{MERGEFIELD TableEnd:donation} 

{MERGEFIELD TableEnd:person} 

Вы не можете использовать поля от лица внутри TableStart/TableEnd для пожертвования или наоборот. Что мне нужно сделать, так это проверять тип donationType, и если это CHK или ECHECK, тогда вставьте файл donationText. Я понял, вы можете использовать оператор IF так:

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "CHK" "{MERGEFIELD donationText}" ""} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "ECHECK" "{MERGEFIELD donationText}" ""} 
{MERGEFIELD TableEnd:person} 

я могу получить это заявление на работу, если каждый IF оператор находится в отдельной строке. Мне нужно, чтобы они были в одной строке, чтобы предотвратить появление пустых строк. Я также попытался включить один оператор IF в другой, но тогда ни одно из операторов IF не работает.

Я использую MS Word 2010.

ответ

0

Я выяснил решение. Чтобы вставить один оператор IF в другой, вы должны добавить новую строку перед встроенным IF-выражением.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "CHK" "{MERGEFIELD donationText}" { 
IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType} {MERGEFIELD TableEnd:donation}" = "ECHECK" "{MERGEFIELD donationText}" ""}} 

{MERGEFIELD TableEnd:person} 

Добавление новой строки позволяет TableStart работать, в противном случае вы получите сообщение об ошибке, так как два тега TableStart не может быть в одной и той же линии.

Смежные вопросы