2017-02-18 393 views
0

我正在设置邮件合并文档与具有含有该结构的物体的目标数据源:在另一个tablestart使用从tablestart一个字段的MS Word合并

ID,名字,姓氏,地址,donationText,捐赠

捐款是对象本身具有以下属性:

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.

回答

0

我想出了一个解决方案。为了在另一个IF语句中嵌入一条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标记不能位于同一行。

相关问题