Как проверить наличие свойства пользовательского документа Word (CDP) в коде поля? - PullRequest
0 голосов
/ 20 сентября 2011

Следующий код поля в Word отображает содержимое пользовательского свойства документа «myproperty», когда оно существует; в противном случае он ничего не делает

{IF {DOCPROPERTY "myproperty"} <> "Error! Unknown document property name." {DOCPROPERTY "myproperty"}}

Проверка на существование основана на сообщении об ошибке, которое Word возвращает, если свойство не существует. Проблема в том, что это сообщение об ошибке может быть локализовано (например, на французском и т. Д.).

Знаете ли вы, как проверить наличие пользовательского свойства документа независимо от локали? Это было бы эквивалентно чему-то вроде:

{IF {EXIST-DOCPROPERTY "myproperty"}{DOCPROPERTY "myproperty"}}

1 Ответ

0 голосов
/ 21 сентября 2011

ИМХО, вы наткнулись на несколько проблем в Word, которые связаны с языковым контентом и для которых не существует правильного решения.

Другим примером является поле {STYLEREF}, для которого требуется ссылка на стиль, на который вы хотите сослаться.Хотя у вас есть в VAB / VSTO возможность ссылаться на встроенные стили через константу, например, wdStyleHeading1, чтобы быть независимой от языка, в поле необходимо добавить имя стиля как «Заголовок 1» в английском слове.Откройте документ в немецком слове, и вы получите ошибку «имя стиля не определено», и наоборот, открыв немецкий «STYLEREF» Überschrift 1 "} в английском слове.

У вас нетсказал что-нибудь обо всей ситуации, в которой вы хотите решить вашу проблему. В моих наборах шаблонов документов я обычно контролирую документы, например, есть глобальная надстройка, через которую я могу контролировать документы. Кроме того, выпущенные шаблоныу меня уже есть пользовательские свойства документа, которые уже определены, так что ошибки вашего вида не могут возникнуть. Однако, даже если они не определены, вы можете создать их при открытии документа.

...