Campi di automazione del documento (IF, COMPARE, MACROBUTTON, e altro)
Campi di automazione dei documenti (IF, COMPARE e altro)
Questa guida mostra come lavorare con la famiglia di campi di automazione dei documenti di Word in Aspose.Words FOSS per .NET – campi che gestiscono testo condizionale, memorizzano variabili a livello di documento e collegano macro, navigazione e comportamento di stampa, invece di limitarsi a visualizzare un valore calcolato. Ognuno è un Field sottoclasse in il Aspose.Words.Fields namespace: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, e FieldPrint. Tutti loro ereditano il core Field membri descritti in Lavorare con i campi – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, e Format – questa pagina copre ciò che è specifico per ciascuno.
Testo condizionale con FieldIf
FieldIf implementa il IF campo. LeftExpression, ComparisonOperator, e RightExpression descrive la condizione – la stessa forma a tre parti usata da IComparisonExpressionEvaluator (vedi Lavorare con i campi) – e TrueText / FalseText contengono i due risultati possibili. Chiama EvaluateCondition() per valutare la condizione direttamente; restituisce un FieldIfComparisonResult valore: True, False, o Error.
Confrontare valori con FieldCompare
FieldCompare implementa il campo COMPARE. Come FieldIf, espone LeftExpression, ComparisonOperator e RightExpression per descrivere il confronto, ma produce un risultato in stile booleano invece di alternare tra due alternative di testo.
Variabili del documento con FieldDocVariable
FieldDocVariable implementa il campo DOCVARIABLE, leggendo una variabile denominata a livello di documento tramite la sua proprietà VariableName.
Pulsanti: FieldGoToButton e FieldMacroButton
FieldGoToButton implementa il campo GOTOBUTTON: Location indica il segnalibro, la pagina o altra destinazione a cui saltare, e DisplayText è l’etichetta mostrata nel documento. FieldMacroButton implementa il campo MACROBUTTON: MacroName indica la macro da eseguire e DisplayText è l’etichetta. Sia FieldIf che FieldMacroButton implementano inoltre IMergeFieldSurrogate, l’interfaccia che i campi di Word consapevoli dell’unione della stampa usano per contrassegnarsi come contenuto sostituibile.
Istruzioni di stampa con FieldPrint
FieldPrint implementa il campo PRINT: PrinterInstructions e PostScriptGroup contengono istruzioni specifiche per la stampante incorporate direttamente nel documento.
Suggerimenti e migliori pratiche
- Usa
FieldIf.EvaluateCondition()per leggere il risultato di una condizione (FieldIfComparisonResult) senza dover analizzareTrueText/FalseTextda solo. FieldCompareeFieldIfcondividono la stessa formaLeftExpression/ComparisonOperator/RightExpression– il codice che costruisce o ispeziona un’espressione di confronto può essere riutilizzato per entrambi i tipi di campo.- Ricorda che questi sono tutti
Fieldsottoclassi:GetFieldCode(),Update(),Remove(), eUnlink()from Lavorare con i campi applicare esattamente allo stesso modo qui.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
FieldIf.EvaluateCondition() restituisce Error | Gli operandi o l’operatore della condizione non possono essere valutati così come scritti | Verifica LeftExpression, ComparisonOperator e RightExpression per valori validi |
Il risultato di FieldDocVariable non riflette il valore variabile previsto | VariableName non corrisponde a un nome di variabile effettivamente presente nel documento | Conferma il nome esatto della variabile e che esista prima di leggere Result |
Il testo visualizzato FieldGoToButton/FieldMacroButton non corrisponde a quanto mostra Word | DisplayText è stato letto prima che il campo fosse aggiornato, o è stato impostato senza una chiamata Update() corrispondente | Chiama Update() sul campo, o rileggi DisplayText dopo qualsiasi modifica |
FAQ
Come leggo il risultato di un campo IF condizionale?
Chiama FieldIf.EvaluateCondition() per il FieldIfComparisonResult grezzo, oppure leggi TrueText / FalseText per le due alternative di testo letterale tra le quali il campo alterna.
Qual è la differenza tra FieldIf e FieldCompare?
FieldIf (il campo IF) alterna tra TrueText e FalseText in base alla sua condizione. FieldCompare (il campo COMPARE) condivide la stessa struttura di confronto ma produce un risultato di tipo booleano anziché un testo alternativo.
Come leggo il nome di una variabile di documento da un campo DOCVARIABLE?
Leggi FieldDocVariable.VariableName.
Come trovo la destinazione di un campo GOTOBUTTON?
Leggi FieldGoToButton.Location; DisplayText fornisce l’etichetta visualizzata per il pulsante nel documento.
API Reference Riepilogo
| Classe / Enum | Descrizione |
|---|---|
FieldIf | IF campo; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Risultato dell’enumerazione di FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE campo; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE campo; VariableName |
FieldGoToButton | GOTOBUTTON campo; Location, DisplayText |
FieldMacroButton | MACROBUTTON campo; MacroName, DisplayText |
FieldPrint | PRINT campo; PrinterInstructions, PostScriptGroup |