mailmerge - 邮件合并模板:局部变量在 if..else 中未获得值
问题描述
{ MERGEFIELD TableStart:Test}{ 设置计划 {MERGEFIELD Name}="XYZ" "1" "0"}} { MERGEFIELD TableEnd:Test }
{如果{参考计划}=“1”“通过”“失败”}
在此示例中,无论名称是否为“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 文档的屏幕截图
推荐阅读
- php - PHP 查找下一个开放日
- swift - swift4中控制彩票动画进度的代码不起作用
- laravel - Laravel Slug 更新记录
- javascript - 1234.1234,123.12,0100.111,XXXX.XXXX 的 Java 脚本正则表达式
- sql - Redshift - 在 where 子句中将 UTC 时间转换为本地时间时出错
- vba - 从 xmlhttp.responseText 获取数据到 excel
- node.js - 如何使用 bitcore-lib (NodeJs) 获得交易的最低费用?
- jcreator - 初学者在格式字符串上的挣扎
- c++ - 如何使用谷歌测试用例测试迭代器值?
- sql-server - SSMS 中数据库名称后的 (Synchronized) 是什么意思。