我一直在尝试使用XML Mapping Pane中的内容控件和IF Field Code。但我遇到了一些问题。似乎我无法将内容控件的值与我想要的内容进行比较
例如:
{ IF Language_CodeValue <> "DAN" "ENGLISH" "DANISH" }
Language_CodeValue是来自XML Mapping Pane的内容控件。任何帮助,将不胜感激。当我在word文档上显示时,Language_CodeValue中包含DAN。似乎与不起作用的字符串比较
答案 0 :(得分:0)
内容控件无法成功嵌套在任何类型的字段代码中。它们无法正常工作。
当你从逻辑上考虑它时,这是有道理的,因为当一个字段更新它可以显示的唯一的东西是结果,这意味着不能使用内容控件。或者如果可以使用,则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部件的所有内容控件都将触发此事件。因此,您应该检查内容控件的标题(或标记)属性并分支相应的操作。