邮件合并模板:局部变量未在 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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...