Dokumentenautomatisierungsfelder (IF, COMPARE, MACROBUTTON und Mehr)

Dokumentenautomatisierungsfelder (IF, COMPARE, MACROBUTTON und Mehr)

Dokumentautomatisierungsfelder (IF, COMPARE und mehr)

Dieses Handbuch zeigt, wie man mit der Dokumentautomatisierungsfeldfamilie von Word in Aspose.Words FOSS für .NET – Felder, die bedingten Text steuern, dokumentbezogene Variablen speichern und Makros, Navigation sowie Druckverhalten verknüpfen, anstatt lediglich einen berechneten Wert anzuzeigen. Jeder ist ein Field Unterklasse im Aspose.Words.Fields Namensraum: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, und FieldPrint. Alle erben den Kern Field Mitglieder, die in Arbeiten mit Feldern – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, und Format – diese Seite behandelt, was jeweils spezifisch ist.


Bedingter Text mit FieldIf

FieldIf implementiert das IF Feld. LeftExpression, ComparisonOperator, und RightExpression beschreiben die Bedingung – die gleiche dreiteilige Form, die von IComparisonExpressionEvaluator (siehe Arbeiten mit Feldern) – und TrueText / FalseText halten die beiden möglichen Ergebnisse. Aufrufen EvaluateCondition() um die Bedingung direkt zu evaluieren; sie gibt ein FieldIfComparisonResult Wert: True, False, oder Error.


Vergleich von Werten mit FieldCompare

FieldCompare implementiert das COMPARE-Feld. Wie FieldIf stellt es LeftExpression, ComparisonOperator und RightExpression zur Beschreibung des Vergleichs bereit, liefert jedoch ein boolesches Ergebnis, anstatt zwischen zwei Textalternativen zu wechseln.


Dokumentvariablen mit FieldDocVariable

FieldDocVariable implementiert das DOCVARIABLE-Feld und liest eine benannte, dokumentbezogene Variable über seine VariableName-Eigenschaft.


Schaltflächen: FieldGoToButton und FieldMacroButton

FieldGoToButton implementiert das GOTOBUTTON-Feld: Location bezeichnet das Lesezeichen, die Seite oder ein anderes Ziel, zu dem gesprungen werden soll, und DisplayText ist die im Dokument angezeigte Beschriftung. FieldMacroButton implementiert das MACROBUTTON-Feld: MacroName bezeichnet das auszuführende Makro und DisplayText ist die Beschriftung. Sowohl FieldIf als auch FieldMacroButton implementieren zusätzlich IMergeFieldSurrogate, die Schnittstelle, die Word-Felder, die Seriendruck unterstützen, verwenden, um sich selbst als ersetzbaren Inhalt zu kennzeichnen.


Druckanweisungen mit FieldPrint

FieldPrint implementiert das PRINT-Feld: PrinterInstructions und PostScriptGroup enthalten druckspezifische Anweisungen, die direkt im Dokument eingebettet sind.


Tipps und bewährte Verfahren

  • Verwenden Sie FieldIf.EvaluateCondition(), um das Ergebnis einer Bedingung (FieldIfComparisonResult) auszulesen, ohne TrueText/FalseText selbst zu parsen.
  • FieldCompare und FieldIf teilen die gleiche LeftExpression/ComparisonOperator/ RightExpression-Struktur – Code, der einen Vergleichsausdruck erstellt oder inspiziert, kann für beide Feldtypen wiederverwendet werden.
  • Denken Sie daran, dass dies alles Field Unterklassen: GetFieldCode(), Update(), Remove(), und Unlink() from Arbeiten mit Feldern auf exakt dieselbe Weise hier anwenden.

Häufige Probleme

ProblemUrsacheLösung
FieldIf.EvaluateCondition() gibt Error zurückDie Operanden oder der Operator der Bedingung konnten nicht wie geschrieben ausgewertet werdenÜberprüfen Sie LeftExpression, ComparisonOperator und RightExpression auf gültige Werte
Das Ergebnis von FieldDocVariable entspricht nicht dem erwarteten VariablenwertVariableName stimmt nicht mit einem tatsächlich im Dokument vorhandenen Variablennamen übereinBestätigen Sie den genauen Variablennamen und dessen Vorhandensein, bevor Sie Result lesen
Der Anzeigetext von FieldGoToButton/FieldMacroButton stimmt nicht mit dem überein, was Word anzeigtDisplayText wurde gelesen, bevor das Feld aktualisiert wurde, oder wurde gesetzt, ohne dass ein entsprechender Update()-Aufruf erfolgteRufen Sie Update() für das Feld auf oder lesen Sie DisplayText nach jeder Änderung erneut ein

FAQ

Wie lese ich das Ergebnis eines bedingten IF-Feldes?

Rufen Sie FieldIf.EvaluateCondition() für das rohe FieldIfComparisonResult auf oder lesen Sie TrueText / FalseText für die beiden wörtlichen Textalternativen, zwischen denen das Feld wechselt.

Was ist der Unterschied zwischen FieldIf und FieldCompare?

FieldIf (das IF-Feld) wechselt basierend auf seiner Bedingung zwischen TrueText und FalseText. FieldCompare (das COMPARE-Feld) verwendet dieselbe Vergleichsform, liefert jedoch ein boolesches Ergebnis statt alternativen Textes.

Wie lese ich den Namen einer Dokumentvariablen aus einem DOCVARIABLE-Feld?

Lesen Sie FieldDocVariable.VariableName.

Wie finde ich das Ziel eines GOTOBUTTON-Feldes?

Lesen Sie FieldGoToButton.Location; DisplayText gibt das im Dokument angezeigte Label für die Schaltfläche an.


API Reference Zusammenfassung

Klasse / AufzählungBeschreibung
FieldIfIF Feld; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultEnum-Ergebnis von FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE Feld; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE Feld; VariableName
FieldGoToButtonGOTOBUTTON Feld; Location, DisplayText
FieldMacroButtonMACROBUTTON Feld; MacroName, DisplayText
FieldPrintPRINT Feld; PrinterInstructions, PostScriptGroup

Siehe auch

 Deutsch