Использование панели сопоставления XML с документом с кодом поля IF
Я пытался использовать элемент управления содержимым из панели сопоставления XML с кодом поля IF. Но у меня есть некоторые проблемы. Кажется, я не могу сравнить значение элемента управления контентом с тем, что я хочу
Например:
{ IF Language_CodeValue <> "DAN" "ENGLISH" "DANISH" }
Language_CodeValue - это элемент управления содержимым из панели сопоставления XML. Любая помощь будет оценена. Language_CodeValue содержит DAN, когда я отображаю его в текстовом документе. Похоже на сравнение со строкой, которая не работает
1 ответ
Элементы управления контентом не могут быть успешно вложены в коды полей любого вида. Они не работают правильно.
Когда вы думаете об этом логически, это имеет смысл, потому что, когда поле обновляется, единственное, что оно может показать, это результат, что означает, что управление контентом не может быть использовано. Или, если это можно использовать, то поле IF не может работать правильно. Поэтому в основном коды полей должны игнорировать элементы управления контентом.
Простого обходного пути для этого не существует, но одной из возможностей будет использование события ContentControlBeforeStoreUpdate объекта Document для запуска действий объектной модели при изменении узла XML в пользовательской части XML. Он может записать свое содержимое в CustomDocumentProperty. Поле DocProperty затем может быть вложено в поле If.
После успешного сопоставления элемента управления содержимым с пользовательской XML-частью может быть инициировано событие ContentControlBeforeStoreUpdate. Это событие (должно быть) определено в модуле ThisDocument документа, содержащего элемент управления содержимым.
В редакторе VBA дважды щелкните ThisDocument для документа, содержащего элемент управления содержимым в окне Project. Из списка в левом верхнем углу окна кода выберите "Документ". Из списка в правом верхнем углу выберите 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, будут вызывать это событие. Поэтому вам следует проверить свойство title (или тега) элемента управления контентом и выполнить соответствующие действия.