将 XML 映射窗格与 IF 域代码 Word 文档一起使用

Using XML Mapping Pane with IF Field Code Word Document

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

例如:

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

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

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

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

对此没有简单的解决方法,但一种可能是在 XML自定义 XML 部分中的节点已更改。它可以将其内容写入 CustomDocumentProperty。然后可以将 DocProperty 字段嵌套在 If 字段中。

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

在 VBA 编辑器中 double-click ThisDocument 用于包含项目 window 中的内容控件的文档。从代码 window 左上角的列表中选择 "Document"。从右上角的列表中选择 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 部分的所有内容控件都将触发此事件。因此,您应该检查内容控件的标题(或标记)属性 并分支适当的操作。