Campos de Automação de Documentos (IF, COMPARE, MACROBUTTON e Mais)

Campos de Automação de Documentos (IF, COMPARE, MACROBUTTON e Mais)

Campos de Automação de Documentos (IF, COMPARE e Mais)

Este guia mostra como trabalhar com a família de campos de automação de documentos do Word em Aspose.Words FOSS para .NET – campos que controlam texto condicional, armazenam variáveis de escopo de documento e conectam macros, navegação e comportamento de impressão, em vez de simplesmente exibir um valor calculado. Cada um é um Field subclasse no Aspose.Words.Fields espaço de nomes: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, e FieldPrint. Todos eles herdam o núcleo Field membros descritos em Trabalhando com Campos – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, e Format – esta página cobre o que é específico a cada um.


Texto Condicional com FieldIf

FieldIf implementa o IF campo. LeftExpression, ComparisonOperator, e RightExpression descreve a condição – a mesma forma de três partes usada por IComparisonExpressionEvaluator (veja Trabalhando com Campos) – e TrueText / FalseText mantenha os dois resultados possíveis. Chame EvaluateCondition() para avaliar a condição diretamente; retorna um FieldIfComparisonResult valor: True, False, ou Error.


Comparando Valores com FieldCompare

FieldCompare implementa o campo COMPARE. Como FieldIf, ele expõe LeftExpression, ComparisonOperator e RightExpression para descrever a comparação, mas produz um resultado no estilo booleano ao invés de alternar entre duas alternativas de texto.


Variáveis de Documento com FieldDocVariable

FieldDocVariable implementa o campo DOCVARIABLE, lendo uma variável nomeada de escopo de documento através de sua propriedade VariableName.


Botões: FieldGoToButton e FieldMacroButton

FieldGoToButton implementa o campo GOTOBUTTON: Location nomeia o marcador, página ou outro destino para o qual saltar, e DisplayText é o rótulo exibido no documento. FieldMacroButton implementa o campo MACROBUTTON: MacroName nomeia a macro a ser executada e DisplayText é o rótulo. Tanto FieldIf quanto FieldMacroButton também implementam IMergeFieldSurrogate, a interface que os campos compatíveis com mala direta do Word usam para marcar-se como conteúdo substituível.


Instruções de impressão com FieldPrint

FieldPrint implementa o campo PRINT: PrinterInstructions e PostScriptGroup contêm instruções específicas da impressora incorporadas diretamente no documento.


Dicas e Melhores Práticas

  • Use FieldIf.EvaluateCondition() para ler o resultado de uma condição (FieldIfComparisonResult) sem precisar analisar TrueText/FalseText você mesmo.
  • FieldCompare e FieldIf compartilham a mesma forma LeftExpression/ComparisonOperator/ RightExpression – código que constrói ou inspeciona uma expressão de comparação pode ser reutilizado em ambos os tipos de campo.
  • Lembre-se de que todos estes são Field subclasses: GetFieldCode(), Update(), Remove(), e Unlink() from Trabalhando com Campos aplique exatamente da mesma forma aqui.

Problemas Comuns

ProblemaCausaCorreção
FieldIf.EvaluateCondition() retorna ErrorOs operandos ou o operador da condição não puderam ser avaliados como escritosVerifique LeftExpression, ComparisonOperator e RightExpression quanto a valores válidos
O resultado de FieldDocVariable não reflete o valor esperado da variávelVariableName não corresponde a um nome de variável realmente presente no documentoConfirme o nome exato da variável e que ela existe antes de ler Result
O texto exibido de FieldGoToButton/FieldMacroButton não corresponde ao que o Word mostraDisplayText foi lido antes do campo ser atualizado, ou foi definido sem uma chamada correspondente de Update()Chame Update() no campo, ou releia DisplayText após qualquer alteração nele

FAQ

Como leio o resultado de um campo condicional IF?

Chame FieldIf.EvaluateCondition() para obter o FieldIfComparisonResult bruto, ou leia TrueText / FalseText para as duas alternativas de texto literal entre as quais o campo alterna.

Qual é a diferença entre FieldIf e FieldCompare?

FieldIf (o campo IF) alterna entre TrueText e FalseText com base em sua condição. FieldCompare (o campo COMPARE) compartilha a mesma forma de comparação, mas produz um resultado no estilo booleano em vez de texto alternativo.

Como leio o nome de uma variável de documento a partir de um campo DOCVARIABLE?

Leia FieldDocVariable.VariableName.

Como encontro o destino de um campo GOTOBUTTON?

Leia FieldGoToButton.Location; DisplayText fornece o rótulo exibido para o botão no documento.


API Reference Resumo

Classe / EnumDescrição
FieldIfIF campo; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultEnum resultado de FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE campo; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE campo; VariableName
FieldGoToButtonGOTOBUTTON campo; Location, DisplayText
FieldMacroButtonMACROBUTTON campo; MacroName, DisplayText
FieldPrintPRINT campo; PrinterInstructions, PostScriptGroup

Ver também

 Português