Dokumentautomatiseringsfält (IF, COMPARE, MACROBUTTON och mer)

Dokumentautomatiseringsfält (IF, COMPARE, MACROBUTTON och mer)

Dokumentautomatiseringsfält (IF, COMPARE och mer)

Den här guiden visar hur man arbetar med Word:s dokumentautomatiseringsfältfamilj i Aspose.Words FOSS för .NET – fält som styr villkorlig text, lagrar dokumentomfattande variabler och kopplar ihop makron, navigation och utskriftsbeteende, snarare än att bara visa ett beräknat värde. Varje är en Field subklass i Aspose.Words.Fields namnrymd: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, och FieldPrint. Alla ärver kärnan Field medlemmar som beskrivs i Arbeta med fält – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, och Format – den här sidan täcker vad som är specifikt för varje.


Villkorlig text med FieldIf

FieldIf implementerar IF fält. LeftExpression, ComparisonOperator, och RightExpression beskriver villkoret – samma tre-delade form som används av IComparisonExpressionEvaluator (se Arbeta med fält) – och TrueText / FalseText håll de två möjliga resultaten. Anropa EvaluateCondition() för att utvärdera villkoret direkt; den returnerar en FieldIfComparisonResult värde: True, False, eller Error.


Jämföra värden med FieldCompare

FieldCompare implementerar COMPARE-fältet. Liksom FieldIf exponerar den LeftExpression, ComparisonOperator och RightExpression för att beskriva jämförelsen, men ger ett booleskt resultat snarare än att växla mellan två textalternativ.


Dokumentvariabler med FieldDocVariable

FieldDocVariable implementerar DOCVARIABLE-fältet, och läser en namngiven dokumentomfattande variabel via dess VariableName-egenskap.


Knappar: FieldGoToButton och FieldMacroButton

FieldGoToButton implementerar GOTOBUTTON-fältet: Location namnger bokmärket, sidan eller annan destination att hoppa till, och DisplayText är etiketten som visas i dokumentet. FieldMacroButton implementerar MACROBUTTON-fältet: MacroName namnger makrot som ska köras och DisplayText är etiketten. Både FieldIf och FieldMacroButton implementerar dessutom IMergeFieldSurrogate, gränssnittet som Word’s mail-merge-medvetna fält använder för att markera sig som ersättningsbart innehåll.


Utskriftsinstruktioner med FieldPrint

FieldPrint implementerar PRINT-fältet: PrinterInstructions och PostScriptGroup innehåller skrivarspecifika instruktioner som är inbäddade direkt i dokumentet.


Tips och bästa praxis

  • Använd FieldIf.EvaluateCondition() för att läsa ett villkors resultat (FieldIfComparisonResult) utan att behöva tolka TrueText/FalseText själv.
  • FieldCompare och FieldIf delar samma LeftExpression/ComparisonOperator/ RightExpression-struktur – kod som bygger eller granskar ett jämförelseuttryck kan återanvändas för båda fälttyperna.
  • Kom ihåg att dessa är alla Field subklasser: GetFieldCode(), Update(), Remove(), och Unlink() from Arbeta med fält tillämpas exakt på samma sätt här.

Vanliga problem

ProblemOrsakÅtgärd
FieldIf.EvaluateCondition() returnerar ErrorVillkorets operander eller operator kunde inte utvärderas som skrivnaKontrollera LeftExpression, ComparisonOperator och RightExpression för giltiga värden
FieldDocVariable-resultatet återspeglar inte ett förväntat variabelvärdeVariableName matchar inte ett variabelnamn som faktiskt finns i dokumentetBekräfta det exakta variabelnamnet och att det finns innan du läser Result
Visningstexten för FieldGoToButton/FieldMacroButton matchar inte vad Word visarDisplayText lästes innan fältet uppdaterades, eller sattes utan ett motsvarande Update()-anropAnropa Update() på fältet, eller läs om DisplayText efter någon förändring av det

FAQ

Hur läser jag resultatet av ett villkorligt IF-fält?

Anropa FieldIf.EvaluateCondition() för den råa FieldIfComparisonResult, eller läs TrueText / FalseText för de två bokstavliga textalternativen som fältet växlar mellan.

Vad är skillnaden mellan FieldIf och FieldCompare?

FieldIf (fältet IF) växlar mellan TrueText och FalseText baserat på dess villkor. FieldCompare (fältet COMPARE) har samma jämförelsestruktur men ger ett booleskt resultat snarare än alternativ text.

Hur läser jag ett dokumentvariabels namn från ett DOCVARIABLE-fält?

Läs FieldDocVariable.VariableName.

Hur hittar jag destinationen för ett GOTOBUTTON-fält?

Läs FieldGoToButton.Location; DisplayText ger etiketten som visas för knappen i dokumentet.


API Reference Sammanfattning

Klass / EnumBeskrivning
FieldIfIF fält; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultEnum-resultat för FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE fält; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE fält; VariableName
FieldGoToButtonGOTOBUTTON fält; Location, DisplayText
FieldMacroButtonMACROBUTTON fält; MacroName, DisplayText
FieldPrintPRINT fält; PrinterInstructions, PostScriptGroup

Se även

 Svenska