微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

邮件合并模板:局部变量未在 if..else 中获取值

如何解决邮件合并模板:局部变量未在 if..else 中获取值

{ MERGEFIELD TableStart:Test}{ SET PLAN {MERGEFIELD Name}="XYZ" "1" "0"}} { MERGEFIELD TableEnd:Test }

{ IF { REF PLAN } = "1" "通过" "失败"}

在这个例子中总是得到结果Fail,不管Name是不是“XYZ”。

有人可以进一步建议吗?

解决方法

在您的 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文档截图

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。