Ms word 基于另一个邮件合并字段抑制Word中的文本和邮件合并字段

Ms word 基于另一个邮件合并字段抑制Word中的文本和邮件合并字段,ms-word,mailmerge,Ms Word,Mailmerge,我们的学生信息系统(SIS)使用Word的邮件合并功能创建自定义文档。我正在尝试重新创建一个状态提供的表单,需要一些帮助 在文档中,我有六个“源”:每个源都有一个复选框、一个静态文本描述和一个描述字段。我想将这六行显示为单独的行,但如果未选中该行的复选框,我根本不想显示该行;我也不希望复选框实际显示在这里(它将显示在不同的位置)。我要寻找的效果是一个表,其中每一行的可见性由复选框控制,空行折叠 当我创建文档时,SIS将创建一个包含所有引用字段的初学者文档。经过一点按摩后,我得到了: { MERG

我们的学生信息系统(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}
因此,如果仅选中源1和源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”之前键入了一个问号;实际上是两个问号,代码已经更新以反映这一点。

为了解决我的问题,我需要在“True”结果中使用带有回车符的IF合并字段;我还需要在六个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}
" ""}


如果不访问实际数据(更具体地说,是
{MERGEFIELD@CogS1?TYPE=CHECKBOX}
的基础数据),就不可能回答。如果数据源中有返回可以使用If进行测试的内容,那么应该是可能的。你能提供这样的服务吗?(请使用链接将信息直接添加到问题中。)我应该包含这些信息,并更新问题。谢谢。@Jim Stephenson:问题是{MERGEFIELD}字段的语法不是“正常”的MERGEFIELD语法。当我第一次阅读您的问题时,我想知道您的SIS系统是否在合并之前使用代码将“CogS1?TYPE=CHECKBOX”替换为更具体的列名。如果是这样的话,那么这个问题的读者(也许你也不这么认为!)并不清楚。此外,作为一般规则,如果名为CogS1的合并字段的值为真,即文本值为真,则需要进行测试,以将合并字段值与文本值“真”匹配。正如Yokki在评论中提到的,您使用的SIS系统似乎在幕后对数据源及其提供的内容进行操作。它甚至不确定是否正在执行真正的邮件合并,而不是使用文档中的合并字段执行代码。如果这不是一个真正的邮件合并,那么您需要联系您的系统管理人员以解决您的问题-这不是我们可以解决的问题…根据上述警告,请在您尝试的“如果”字段中进行编辑。如果我们发现有问题,我们可以提出建议。如果它看起来是正确的,那么我上面的评论适用。