在另一个表中使用tablestart中的字段启动MS Word合并

时间:2017-02-18 01:25:12

标签: ms-word mailmerge

我正在使用包含此结构的对象的对象数据源设置邮件合并文档:

id,firstName,lastName,address,donationText,donations

捐赠是一个具有以下属性的对象:

donationType,donationAmount,donationDate

邮件合并文档使用合并域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。

1 个答案:

答案 0 :(得分: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标记不能在同一行中。