首页 > 解决方案 > 基于另一个邮件合并字段抑制 Word 中的文本和邮件合并字段

问题描述

我们的学生信息系统 (SIS) 使用 Word 的邮件合并功能来创建自定义文档。我正在尝试重新创建一个国家提供的表格,需要一些帮助。

在文档中,我有六个“来源”:每个来源都有一个复选框、一个静态文本描述和一个描述字段。我想将这六个显示为单独的行,但是如果未选中该行的复选框,我根本不希望显示该行;我也不希望复选框实际显示在这里(它将显示在不同的地方)。我正在寻找的效果是一个表格,其中每一行的可见性由复选框控制,空行折叠。

当我创建文档时,SIS 会创建一个包含所有引用字段的起始文档。稍作按摩后,这就是我所拥有的:

{ MERGEFIELD TableStart:REV_DATA_ROOT/StudentDocument \*MERGEFORMAT}
    { MERGEFIELD @CogS1??TYPE=CHECKBOX} Source 1 { MERGEFIELD @CogS1Desc}
    { MERGEFIELD @CogS2??TYPE=CHECKBOX} Source 2 { MERGEFIELD @CogS2Desc}
    { MERGEFIELD @CogS3??TYPE=CHECKBOX} Source 3 { MERGEFIELD @CogS3Desc}
    { MERGEFIELD @CogS4??TYPE=CHECKBOX} Source 4 { MERGEFIELD @CogS4Desc}
    { MERGEFIELD @CogS5??TYPE=CHECKBOX} Source 5 { MERGEFIELD @CogS5Desc}
    { MERGEFIELD @CogS6??TYPE=CHECKBOX} Source 6 { MERGEFIELD @CogS6Desc}
{ MERGEFIELD TableEnd:REV_DATA_ROOT/StudentDocument \*MERGEFORMAT}

因此,如果仅选中 Source 1 和 Source 5 的复选框,则只会显示这两行:

 Source 1   Et ultrices neque ornare aenean euismod elementum nisi quis.
 Source 5   Ultricies tristique nulla aliquet enim tortor at auctor urna.

(如果描述换行到下一行,我将使用制表符和悬挂缩进来模仿实际的表格)

我特别想避免的是在未选中的复选框处有一个空行。这可能吗?

编辑:当我单独打印@CogS1 等时,没有将类型设置为复选框,它会打印 True 或 False,因此应该可以在IF语句中使用它,但我没有让它工作。另外,在上面的原始代码中,我在“TYPE=CHECKBOX”之前输入了一个问号;它实际上是两个问号,代码已更新以反映这一点。

标签: ms-wordmailmerge

解决方案


为了解决我的问题,我需要使用 IF 合并字段,并在“True”结果中嵌入回车;我还需要在六个 IF 合并字段之间没有回车。根据我最初给出的示例,这就是我最终做的事情:

{IF {MERGEFIELD @CogS1} = "true" "Source 1: {MERGEFIELD @CogS1Desc}
"}{IF {MERGEFIELD @CogS2} = "true" "Source 2: {MERGEFIELD @CogS2Desc}
" ""}{IF {MERGEFIELD @CogS3} = "true" "Source 3: {MERGEFIELD @CogS3Desc}
" ""}{IF {MERGEFIELD @CogS4} = "true" "Source 4: {MERGEFIELD @CogS4Desc}
" ""}{IF {MERGEFIELD @CogS5} = "true" "Source 5: {MERGEFIELD @CogS5Desc}
" ""}{IF {MERGEFIELD @CogS6} = "true" "Source 6: {MERGEFIELD @CogS6Desc}
" ""}


推荐阅读