Поля автоматизации документов (IF, COMPARE, MACROBUTTON и другие)

Поля автоматизации документов (IF, COMPARE, MACROBUTTON и другие)

Появления автоматизации документов (IF, COMPARE и другие)

Это руководство показывает, как работать с семейством полей автоматизации документов Word в Aspose.Words FOSS для .NET – поля, которые управляют условным текстом, хранят переменные в пределах документа и связывают макросы, навигацию и поведение печати, а не просто отображают вычисленное значение. Каждый является Field подклассом в Aspose.Words.Fields пространстве имён: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, и FieldPrint. Все они наследуют основной Field члены, описанные в Работа с полями – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, и Format – эта страница охватывает то, что специфично для каждого.


Условный текст с FieldIf

FieldIf реализует IF поле. LeftExpression, ComparisonOperator, и RightExpression описывают условие – та же трехчастная форма, используемая IComparisonExpressionEvaluator (см Работа с полями) – и TrueText / FalseText содержат два возможных результата. Вызовите EvaluateCondition() для непосредственной оценки условия; возвращает FieldIfComparisonResult значение: True, False, или Error.


Сравнение значений с FieldCompare

FieldCompare реализует поле COMPARE. Как и FieldIf, он раскрывает LeftExpression, ComparisonOperator и RightExpression для описания сравнения, но выдаёт результат в виде булевого значения, а не переключает между двумя текстовыми альтернативами.


Переменные документа с FieldDocVariable

FieldDocVariable реализует поле DOCVARIABLE, читая именованную переменную уровня документа через её свойство VariableName.


Кнопки: FieldGoToButton и FieldMacroButton

FieldGoToButton реализует поле GOTOBUTTON: Location задаёт имя закладки, страницы или другой цели перехода, а DisplayText — это метка, отображаемая в документе. FieldMacroButton реализует поле MACROBUTTON: MacroName задаёт имя макроса для выполнения, а DisplayText — это метка. Оба FieldIf и FieldMacroButton дополнительно реализуют IMergeFieldSurrogate, интерфейс, который поля Word, поддерживающие слияние писем, используют для пометки себя как заменяемого содержимого.


Печатные инструкции с FieldPrint

FieldPrint реализует поле PRINT: PrinterInstructions и PostScriptGroup содержат специфические для принтера инструкции, встроенные непосредственно в документ.


Советы и рекомендации

  • Используйте FieldIf.EvaluateCondition() для чтения результата условия (FieldIfComparisonResult), не требуя самостоятельно разбирать TrueText/FalseText.
  • FieldCompare и FieldIf имеют одинаковую форму LeftExpression/ComparisonOperator/ RightExpression — код, который создает или проверяет одно сравнение, может быть переиспользован для обоих типов полей.
  • Помните, что это все Field подклассы: GetFieldCode(), Update(), Remove(), и Unlink() from Работа с полями применяется точно так же здесь.

Распространённые проблемы

ПроблемаПричинаИсправление
FieldIf.EvaluateCondition() возвращает ErrorОперанды или оператор условия не могут быть вычислены в написанном видеПроверьте LeftExpression, ComparisonOperator и RightExpression на корректные значения
FieldDocVariable результат не отражает ожидаемое значение переменнойVariableName не соответствует имени переменной, фактически присутствующей в документеПодтвердите точное имя переменной и её наличие перед чтением Result
Отображаемый текст FieldGoToButton/FieldMacroButton не совпадает с тем, что показывает WordDisplayText был прочитан до обновления поля или был установлен без соответствующего вызова Update()Вызовите Update() для поля или повторно прочитайте DisplayText после любого изменения

FAQ

Как прочитать результат условного поля IF?

Вызовите FieldIf.EvaluateCondition() для получения необработанного FieldIfComparisonResult, или прочитайте TrueText / FalseText для двух буквальных текстовых альтернатив, между которыми переключается поле.

В чём разница между FieldIf и FieldCompare?

FieldIf (поле IF) переключается между TrueText и FalseText в зависимости от своего условия. FieldCompare (поле COMPARE) имеет ту же форму сравнения, но выдаёт результат в виде булевого значения, а не альтернативного текста.

Как прочитать имя переменной документа из поля DOCVARIABLE?

Прочитайте FieldDocVariable.VariableName.

Как найти назначение поля GOTOBUTTON?

Прочитайте FieldGoToButton.Location; DisplayText задаёт подпись, отображаемую на кнопке в документе.


API Reference Сводка

Класс / ПеречислениеОписание:
FieldIfIF поле; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultРезультат перечисления FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE поле; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE поле; VariableName
FieldGoToButtonGOTOBUTTON поле; Location, DisplayText
FieldMacroButtonMACROBUTTON поле; MacroName, DisplayText
FieldPrintPRINT поле; PrinterInstructions, PostScriptGroup

См. также:

 Русский