首页 > 解决方案 > 邮件合并模板:局部变量在 if..else 中未获得值

问题描述

{ MERGEFIELD TableStart:Test}{ 设置计划 {MERGEFIELD Name}="XYZ" "1" "0"}} { MERGEFIELD TableEnd:Test }

{如果{参考计划}​​=“1”“通过”“失败”}

在此示例中,无论名称是否为“XYZ”,结果总是失败。

谁能进一步建议?

标签: mailmergeaspose.words

解决方案


在您的 SET 字段中,您应该使用 IF 字段来评估条件。请参阅以下字段代码:

{ SET PLAN { IF {MERGEFIELD Name} = XYZ "1" "0"} }
{ IF { REF PLAN } = "1" "Pass" "Fail" }

使用以下代码执行简单邮件合并后:

Document doc = new Document(@"C:\Temp\in.docx");
doc.MailMerge.Execute(new string[] { "Name" }, new string[] { "XYZ" });
doc.Save(@"C:\Temp\out.docx");

生成的文档具有以下域代码:

{ SET PLAN XYZ = XYZ "1" "0"} }
{ IF { REF PLAN } = "1" "Pass" "Fail" }

使用“通过”文本正确评估。

在 MS Word 文档字段中,空格也很重要。请参阅我这边的 MS Word 文档的屏幕截图

在此处输入图像描述


推荐阅读