0

我正在使用 Word 2013 运行邮件合并。我有一个包含 3 个项目的列表 [图。3],我有一个我写的模板。该模板具有一些基本格式,并在下面的单独行中显示行项目(每行 1 个)以及计算的总运费(运费)、税前总额、增值税总额和总计。为了进入下一个行项目,我使用了 NEXT 记录规则。每个行项目都显示在自己的行上,但除非我手动更新字段 [图。1]。我玩过 NEXTIF 规则,我可以让这些字段自动更新,但我在项目表中有 5 行,其他行填充第一条记录 [图。2]。谁能在这里指出我正确的方向?最终目标是在表格中包含 1 到 5 条记录/行项目,并在邮件合并期间填充底部字段。

NEXTIF 规则的填充如下:{ NEXTIF { MERGEFIELD "Product_Product_ID" } = "True" }

非常感谢你

我使用 NEXT 填充的表格的屏幕截图: 在此处输入图像描述

使用 NEXTIF 填充表的屏幕截图: 在此处输入图像描述

数据表截图: 在此处输入图像描述

4

1 回答 1

0

我正在使用 Windows Word 2010 进行测试。其他版本(尤其是在 Mac 上)的行为可能有所不同,因此请告诉我们您使用的是哪个版本。

以前,我假设您正在执行一对多合并(包含多页数据,但每页最多 5 行)。现在我再次阅读您的文字,我意识到您的数据源可能确实最多有 5 行,并且您正在寻找一种方法来检测不存在的行。假设是这样的话,那么...

重要的是您要“完成合并”,即输出到新文档或其他任何内容。预览合并只会让您了解将要发生的事情,并且有时可能会产生误导。

要测试不存在,您应该能够测试

{ IF  { MERGEFIELD Product_ID } = "" }

正如我在之前的评论中指出的那样。尽管有时在预览期间可能不会显示预期结果,但它应该在您完成合并时显示预期结果。(它可能只需要更新字段才能在预览期间正确显示。

我怀疑与不显示总数有关的问题与您计算它们的方式有关。如果您使用的是运行总计而不检查每一行中是否存在值,那么事情可能会出错。显然,您的做法与我不同,因为我实际上看到了一条错误消息:

!Unexpected end of formula.

那就是如果我通过在页面开头添加以下内容来做到这一点

{ SET Total 0 }

以及每行中的以下计算

{ SET Total { =Total+{ MERGEFIELD Extended_Amount } } }

为了解决这个问题,我认为你需要做类似的事情

{ SET Total { =Total+{ IF { MERGEFIELD Extended_Amount } = "" 0 { MERGEFIELD Extended_Amount } } } }

但是,对于该计算,您可以使用完全不同的方法 - 选择表格,插入书签,比如说“数据表”,然后使用类似的字段

{ =SUM(datatable [F:F]) }

或者,如果您希望在输出文档中解析域代码,请使用

{ QUOTE { =SUM(datatable [F:F]) } }

如果您正在进行一对多合并(数据源中的记录超过 5 条),则 { NEXT } 字段方法将不起作用。我可以详细说明你需要做什么,但大纲是你必须有一些东西可以告诉你页面数据何时结束,并使用它来抑制不应该存在的行的输出。(有些人可能认为更简单的替代方法可能是在每页的第一行中设置一个行数,并有一个 IF 块根据行数插入正确数量的表行+内容。

于 2015-11-24T11:15:22.733 回答