Campos de Automatización de Documentos (IF, COMPARE, MACROBUTTON y Más)

Campos de Automatización de Documentos (IF, COMPARE, MACROBUTTON y Más)

Campos de Automatización de Documentos (IF, COMPARE y Más)

Esta guía muestra cómo trabajar con la familia de campos de automatización de documentos de Word en Aspose.Words FOSS para .NET – campos que impulsan texto condicional, almacenan variables a nivel de documento y conectan macros, navegación y comportamiento de impresión, en lugar de simplemente mostrar un valor calculado. Cada uno es un Field subclase en el Aspose.Words.Fields espacio de nombres: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, y FieldPrint. Todos ellos heredan el núcleo Field miembros descritos en Trabajando con campos – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, y Format – esta página cubre lo que es específico de cada uno.


Texto Condicional con FieldIf

FieldIf implementa el IF campo. LeftExpression, ComparisonOperator, y RightExpression describe la condición – la misma forma de tres partes utilizada por IComparisonExpressionEvaluator (ver Trabajando con campos) – y TrueText / FalseText mantenga los dos resultados posibles. Llamar EvaluateCondition() para evaluar la condición directamente; devuelve un FieldIfComparisonResult valor: True, False, o Error.


Comparando Valores con FieldCompare

FieldCompare implementa el campo COMPARE. Al igual que FieldIf, expone LeftExpression, ComparisonOperator y RightExpression para describir la comparación, pero produce un resultado de estilo booleano en lugar de alternar entre dos alternativas de texto.


Variables de Documento con FieldDocVariable

FieldDocVariable implementa el campo DOCVARIABLE, leyendo una variable con nombre de ámbito del documento a través de su propiedad VariableName.


Botones: FieldGoToButton y FieldMacroButton

FieldGoToButton implementa el campo GOTOBUTTON: Location nombra el marcador, página u otro destino al que saltar, y DisplayText es la etiqueta mostrada en el documento. FieldMacroButton implementa el campo MACROBUTTON: MacroName nombra la macro a ejecutar y DisplayText es la etiqueta. Tanto FieldIf como FieldMacroButton implementan adicionalmente IMergeFieldSurrogate, la interfaz que los campos compatibles con combinación de correspondencia de Word utilizan para marcar su contenido como sustituible.


Instrucciones de impresión con FieldPrint

FieldPrint implementa el campo PRINT: PrinterInstructions y PostScriptGroup contienen instrucciones específicas de la impresora incrustadas directamente en el documento.


Consejos y Mejores Prácticas

  • Utiliza FieldIf.EvaluateCondition() para leer el resultado de una condición (FieldIfComparisonResult) sin necesidad de analizar tú mismo TrueText/FalseText.
  • FieldCompare y FieldIf comparten la misma forma LeftExpression/ComparisonOperator/ RightExpression – el código que construye o inspecciona una expresión de comparación puede reutilizarse en ambos tipos de campo.
  • Recuerda que estos son todos Field subclases: GetFieldCode(), Update(), Remove(), y Unlink() from Trabajando con campos aplicar exactamente de la misma manera aquí.

Problemas comunes

ProblemaCausaSolución
FieldIf.EvaluateCondition() devuelve ErrorLos operandos o el operador de la condición no pudieron evaluarse tal como están escritosVerifique LeftExpression, ComparisonOperator y RightExpression para valores válidos
El resultado de FieldDocVariable no refleja el valor de variable esperadoVariableName no coincide con un nombre de variable realmente presente en el documentoConfirme el nombre exacto de la variable y que exista antes de leer Result
El texto de visualización de FieldGoToButton/FieldMacroButton no coincide con lo que muestra WordDisplayText se leyó antes de que el campo se actualizara, o se estableció sin una llamada Update() correspondienteLlame a Update() en el campo, o vuelva a leer DisplayText después de cualquier cambio en él

FAQ

¿Cómo leo el resultado de un campo condicional IF?

Llame a FieldIf.EvaluateCondition() para obtener el FieldIfComparisonResult sin procesar, o lea TrueText / FalseText para las dos alternativas de texto literal entre las que el campo cambia.

¿Cuál es la diferencia entre FieldIf y FieldCompare?

FieldIf (el campo IF) cambia entre TrueText y FalseText según su condición. FieldCompare (el campo COMPARE) comparte la misma forma de comparación pero produce un resultado de tipo booleano en lugar de texto alternativo.

¿Cómo leo el nombre de una variable de documento desde un campo DOCVARIABLE?

Lea FieldDocVariable.VariableName.

¿Cómo encuentro el destino de un campo GOTOBUTTON?

Lea FieldGoToButton.Location; DisplayText proporciona la etiqueta que se muestra en el botón del documento.


API Reference Resumen

Clase / EnumeraciónDescripción
FieldIfIF campo; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultResultado del enum de FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE campo; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE campo; VariableName
FieldGoToButtonGOTOBUTTON field; Location, DisplayText
FieldMacroButtonMACROBUTTON campo; MacroName, DisplayText
FieldPrintPRINT campo; PrinterInstructions, PostScriptGroup

Ver también

 Español