Pole automatizace dokumentu (IF, COMPARE, MACROBUTTON a další)
Pole automatizace dokumentu (IF, COMPARE a další)
Tento průvodce ukazuje, jak pracovat s rodinou polí pro automatizaci dokumentů ve Wordu Aspose.Words FOSS pro .NET – pole, která řídí podmíněný text, ukládají proměnné v rozsahu dokumentu a propojují makra, navigaci a chování při tisku, místo aby jen zobrazovala vypočtenou hodnotu. Každé je Field podtřídou v Aspose.Words.Fields jmenném prostoru: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, a FieldPrint. Všechny z nich dědí jádro Field členy popsanými v Práce s poli – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, a Format – tato stránka popisuje, co je specifické pro každý.
Podmíněný text s FieldIf
FieldIf implementuje IF pole. LeftExpression, ComparisonOperator, a RightExpression popisují podmínku – stejný trojdílný tvar používaný v IComparisonExpressionEvaluator (viz Práce s poli) – a TrueText / FalseText obsahují dva možné výsledky. Zavolejte EvaluateCondition() k přímému vyhodnocení podmínky; vrací FieldIfComparisonResult hodnota: True, False, nebo Error.
Porovnávání hodnot s FieldCompare
FieldCompare implementuje pole COMPARE. Stejně jako FieldIf vystavuje LeftExpression, ComparisonOperator a RightExpression pro popis porovnání, ale vrací výsledek ve stylu boolean místo přepínání mezi dvěma textovými alternativami.
Proměnné dokumentu s FieldDocVariable
FieldDocVariable implementuje pole DOCVARIABLE, čte pojmenovanou proměnnou v rozsahu dokumentu přes její vlastnost VariableName.
Tlačítka: FieldGoToButton a FieldMacroButton
FieldGoToButton implementuje pole GOTOBUTTON: Location určuje název záložky, stránky nebo jiného cíle, na který se má přejít, a DisplayText je popisek zobrazený v dokumentu. FieldMacroButton implementuje pole MACROBUTTON: MacroName určuje název makra, které se má spustit, a DisplayText je popisek. Oba FieldIf i FieldMacroButton navíc implementují IMergeFieldSurrogate, rozhraní, které pole pro hromadnou korespondenci ve Wordu používají k označení sebe jako nahraditelného obsahu.
Instrukce tisku s FieldPrint
FieldPrint implementuje pole PRINT: PrinterInstructions a PostScriptGroup obsahují specifické instrukce pro tiskárnu vložené přímo v dokumentu.
Tipy a osvědčené postupy
- Použijte
FieldIf.EvaluateCondition()k načtení výsledku podmínky (FieldIfComparisonResult) bez nutnosti sami parsovatTrueText/FalseText. FieldCompareaFieldIfsdílejí stejný tvarLeftExpression/ComparisonOperator/RightExpression– kód, který vytváří nebo zkoumá jeden porovnávací výraz, může být znovu použit u obou typů polí.- Pamatujte, že všechny jsou
Fieldpodtřídy:GetFieldCode(),Update(),Remove(), aUnlink()from Práce s poli se použije přesně stejným způsobem zde.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
FieldIf.EvaluateCondition() vrací Error | Operandy nebo operátor podmínky nelze vyhodnotit tak, jak jsou napsány | Zkontrolujte LeftExpression, ComparisonOperator a RightExpression na platné hodnoty |
Výsledek FieldDocVariable neodráží očekávanou hodnotu proměnné | VariableName neodpovídá názvu proměnné, která je ve skutečnosti v dokumentu přítomna | Potvrďte přesný název proměnné a že existuje, než budete číst Result |
FieldGoToButton/FieldMacroButton zobrazovaný text neodpovídá tomu, co zobrazuje Word | DisplayText byl načten před tím, než bylo pole aktualizováno, nebo byl nastaven bez odpovídajícího volání Update() | Zavolejte Update() na poli, nebo znovu načtěte DisplayText po jakékoli změně |
FAQ
Jak si přečtu výsledek podmíněného pole IF?
Zavolejte FieldIf.EvaluateCondition() pro surový FieldIfComparisonResult, nebo přečtěte TrueText / FalseText pro dvě doslovné textové alternativy, mezi kterými pole přepíná.
Jaký je rozdíl mezi FieldIf a FieldCompare?
FieldIf (pole IF) přepíná mezi TrueText a FalseText podle své podmínky. FieldCompare (pole COMPARE) má stejný tvar porovnání, ale vytváří výsledek ve stylu booleanu místo alternativního textu.
Jak si přečtu název proměnné dokumentu z pole DOCVARIABLE?
Přečtěte si FieldDocVariable.VariableName.
Jak najdu cíl pole GOTOBUTTON?
Přečtěte si FieldGoToButton.Location; DisplayText poskytuje popisek zobrazený pro tlačítko v dokumentu.
API Reference Shrnutí
| Class / Enum | Popis: |
|---|---|
FieldIf | IF pole; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Výsledek výčtu FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE pole; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE pole; VariableName |
FieldGoToButton | GOTOBUTTON pole; Location, DisplayText |
FieldMacroButton | MACROBUTTON pole; MacroName, DisplayText |
FieldPrint | PRINT pole; PrinterInstructions, PostScriptGroup |