Поля автоматизації документів (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 відображуваний текст не збігається з тим, що показує Word | DisplayText було зчитано до оновлення поля або встановлено без відповідного виклику 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 Підсумок
| Клас / Перерахування | Опис |
|---|---|
FieldIf | IF поле; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Перелік результату FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE поле; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE поле; VariableName |
FieldGoToButton | GOTOBUTTON поле; Location, DisplayText |
FieldMacroButton | MACROBUTTON поле; MacroName, DisplayText |
FieldPrint | PRINT поле; PrinterInstructions, PostScriptGroup |