Champs d'automatisation de documents (IF, COMPARE, MACROBUTTON et Plus)

Champs d'automatisation de documents (IF, COMPARE, MACROBUTTON et Plus)

Champs d’automatisation de documents (IF, COMPARE et plus)

Ce guide montre comment travailler avec la famille de champs d’automatisation de documents de Word dans Aspose.Words FOSS pour .NET – champs qui pilotent le texte conditionnel, stockent des variables à l’échelle du document et connectent les macros, la navigation et le comportement d’impression, plutôt que d’afficher simplement une valeur calculée. Chaque est un Field sous-classe dans le Aspose.Words.Fields espace de noms : FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, et FieldPrint. Tous héritent du cœur Field membres décrits dans Travailler avec les champs – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, et Format – cette page couvre ce qui est spécifique à chaque.


Texte conditionnel avec FieldIf

FieldIf implémente le IF champ. LeftExpression, ComparisonOperator, et RightExpression décrit la condition – la même forme en trois parties utilisée par IComparisonExpressionEvaluator (voir Travailler avec les champs) – et TrueText / FalseText conservent les deux résultats possibles. Appelez EvaluateCondition() pour évaluer la condition directement ; il renvoie un FieldIfComparisonResult valeur: True, False, ou Error.


Comparer des valeurs avec FieldCompare

FieldCompare implémente le champ COMPARE. Comme FieldIf, il expose LeftExpression, ComparisonOperator et RightExpression pour décrire la comparaison, mais produit un résultat de type booléen plutôt que d’alterner entre deux alternatives textuelles.


Variables de document avec FieldDocVariable

FieldDocVariable implémente le champ DOCVARIABLE, lisant une variable nommée à portée du document via sa propriété VariableName.


Boutons : FieldGoToButton et FieldMacroButton

FieldGoToButton implémente le champ GOTOBUTTON: Location indique le signet, la page ou toute autre destination vers laquelle sauter, et DisplayText est le libellé affiché dans le document. FieldMacroButton implémente le champ MACROBUTTON: MacroName indique la macro à exécuter et DisplayText est le libellé. FieldIf et FieldMacroButton implémentent également IMergeFieldSurrogate, l’interface que les champs de publipostage de Word utilisent pour se marquer comme contenu substituable.


Instructions d’impression avec FieldPrint

FieldPrint implémente le champ PRINT: PrinterInstructions et PostScriptGroup contiennent des instructions spécifiques à l’imprimante incorporées directement dans le document.


Conseils et bonnes pratiques

  • Utilisez FieldIf.EvaluateCondition() pour lire le résultat d’une condition (FieldIfComparisonResult) sans avoir à analyser vous-même TrueText/FalseText.
  • FieldCompare et FieldIf partagent la même forme LeftExpression/ComparisonOperator/ RightExpression – le code qui crée ou inspecte une expression de comparaison peut être réutilisé pour les deux types de champs.
  • Rappelez-vous que ce sont tous Field des sous-classes: GetFieldCode(), Update(), Remove(), et Unlink() from Travailler avec les champs appliquer exactement de la même façon ici.

Problèmes courants

ProblèmeCauseCorrection
FieldIf.EvaluateCondition() renvoie ErrorLes opérandes ou l’opérateur de la condition n’ont pas pu être évalués tels qu’ils sont écritsVérifiez LeftExpression, ComparisonOperator et RightExpression pour des valeurs valides
Le résultat de FieldDocVariable ne reflète pas la valeur de variable attendueVariableName ne correspond pas à un nom de variable réellement présent dans le documentConfirmez le nom exact de la variable et qu’il existe avant de lire Result
Le texte affiché de FieldGoToButton/FieldMacroButton ne correspond pas à ce que Word montreDisplayText a été lu avant que le champ ne soit mis à jour, ou a été défini sans un appel Update() correspondantAppelez Update() sur le champ, ou relisez DisplayText après toute modification de celui-ci

FAQ

Comment lire le résultat d’un champ conditionnel IF?

Appelez FieldIf.EvaluateCondition() pour le FieldIfComparisonResult brut, ou lisez TrueText / FalseText pour les deux alternatives de texte littéral entre lesquelles le champ bascule.

Quelle est la différence entre FieldIf et FieldCompare?

FieldIf (le champ IF) bascule entre TrueText et FalseText selon sa condition. FieldCompare (le champ COMPARE) partage la même forme de comparaison mais produit un résultat de type booléen plutôt qu’un texte alternatif.

Comment lire le nom d’une variable de document à partir d’un champ DOCVARIABLE?

Lire FieldDocVariable.VariableName.

Comment trouver la destination d’un champ GOTOBUTTON ?

Lire FieldGoToButton.Location; DisplayText fournit l’étiquette affichée pour le bouton dans le document.


API Reference Résumé

Classe / EnumDescription
FieldIfIF champ ; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultRésultat d’énumération de FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE champ ; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE champ ; VariableName
FieldGoToButtonGOTOBUTTON champ; Location, DisplayText
FieldMacroButtonMACROBUTTON champ; MacroName, DisplayText
FieldPrintPRINT champ; PrinterInstructions, PostScriptGroup

Voir aussi

 Français