0

我一直在尝试将 XML 映射窗格中的内容控件与 IF 字段代码一起使用。但我有一些问题。似乎我无法将内容控件的值与我想要的值进行比较

例如:

{ IF Language_CodeValue <> "DAN" "ENGLISH" "DANISH" } 

Language_CodeValue 是 XML 映射窗格中的内容控件。任何帮助,将不胜感激。当我在 Word 文档上显示 Language_CodeValue 时,它​​确实包含 DAN。似乎与不起作用的字符串进行比较

4

1 回答 1

1

内容控件无法成功嵌套在任何类型的域代码中。它们不能正常工作。

当您从逻辑上考虑它时,这是有道理的,因为当字段更新时,它唯一可以显示的就是结果,这意味着无法使用内容控件。或者如果可以使用,则 IF 字段无法正常工作。所以基本上域代码需要忽略内容控件。

对此没有简单的解决方法,但一种可能性是使用 Document 对象的 ContentControlBeforeStoreUpdate 事件在自定义 XML 部件中的 XML 节点发生更改时运行对象模型操作。它可以将其内容写入 CustomDocumentProperty。然后可以将 DocProperty 字段嵌套在 If 字段中。

成功将内容控件映射到自定义 xml 部分后,即可触发 ContentControlBeforeStoreUpdate 事件。此事件(必须)在包含内容控件的文档的 ThisDocument 模块中定义。

在 VBA 编辑器中,双击包含项目窗口中内容控件的文档的 ThisDocument。从代码窗口左上角的列表中选择“文档”。从右上角的列表中选择 ContentControlBeforeStoreUpdate。这将为事件插入 Sub...End Sub 存根。

Private Sub Document_ContentControlBeforeStoreUpdate( _
            ByVal ContentControl As ContentControl, _
            Content As String)
  Select Case ContentControl.Title
    Case "Tree"
        ActiveDocument.CustomDocumentProperties("test").Value = Content
    Case Else
  End Select
End Sub

请注意,链接到自定义 xml 部件的所有内容控件都将触发此事件。因此,您应该检查内容控件的标题(或标签)属性并分支适当的操作。

于 2016-03-01T18:26:01.420 回答