我想要做的是:
{ IF v1 = 0 OR v2 = 0 "Lorem Ipsum.." }
如何撰写或者在 Word 合并字段语法中?
我特别要求Word 2013- 我认为语法在 2013 年已经发生了变化。
答案1
如果 v1、v2 是 MERGE 字段,一般情况下需要 { MERGEFIELD v1 } 和 { MERGEFIELD v2 }。然后可以使用如下结构进行 OR 运算:
{ IF { =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) } = 0 "Lorem Ipsum.." }
(通常,所有 { } 都必须是特殊字段代码括号对,您可以在 Windows Word 中使用 ctrl-F9 插入它们。
或者对于简短的结果文本,您可以使用数字图片开关来产生正确的结果,例如
{ =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) }) \#"'';'';'Lorem Ipsum..'" }
对于更多的比较项,你需要嵌套 OR
在这种情况下,您还可以执行以下操作
{ IF { =ABS({ MERGEFIELD v1 })+ABS({ MERGEFIELD v2 }) } = 0 "Lorem Ipsum.. }
恕我直言,我不相信 Word 2013 在这方面的语法发生了变化,但如果您有这种差异的例子,请分享!
答案2
我认为上面的第一个例子是错误的。第二个例子看起来是正确的。如果 COMPARE 为真,则返回 1;如果为假,则返回 0。=OR 也以这种方式工作 - 算术上。因此,如果您的 COMPARE 命题之一为真,则对它们进行 OR 将得出 1。如果 COMPARE 命题之一为真,则您希望输出“Lorem Ipsum”。因此,IF 应该与 1 进行比较,而不是与 0 进行比较。或者,与 0 进行比较,如果匹配为 FALSE,则可以输出“Lorem Ipsum”。我认为这是另一个错误:我认为 IF 期望输出真和假参数。{IF <condition
> <true-text
> <false-text
>}。
更复杂的逻辑条件可以通过再次创造性地使用算术来经济地(不嵌套)表达。假设,对于以下任何一个条件来说,三项为真,则其真值之和可用作 IF 的条件。如果全部为假,则结果为零。可以使用 {=} 在 Word 字段中应用常规算术。例如:
{IF {=({COMPARE {MERGEFIELD v1} = 0} + {COMPARE {MERGEFIELD v2} = 0} + {COMPARE {MERGEFIELD v3} = 0})} = 0 "None are zero." "At least one is zero."}