Pola automatyzacji dokumentu (IF, COMPARE, MACROBUTTON, i więcej)

Pola automatyzacji dokumentu (IF, COMPARE, MACROBUTTON, i więcej)

Pola automatyzacji dokumentu (IF, COMPARE i więcej)

Ten przewodnik pokazuje, jak pracować z rodziną pól automatyzacji dokumentów w Aspose.Words FOSS dla .NET – pola, które sterują tekstem warunkowym, przechowują zmienne o zakresie dokumentu oraz łączą makra, nawigację i zachowanie drukowania, zamiast po prostu wyświetlać obliczoną wartość. Każde z nich jest Field podklasą w Aspose.Words.Fields przestrzeni nazw: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, oraz FieldPrint. Wszystkie z nich dziedziczą podstawowy Field członkowie opisani w Praca z polami – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, i Format – ta strona opisuje, co jest specyficzne dla każdego.


Tekst warunkowy z FieldIf

FieldIf implementuje IF pole. LeftExpression, ComparisonOperator, i RightExpression opisują warunek – ten sam trójczłonowy kształt używany przez IComparisonExpressionEvaluator (zobacz Praca z polami) – i TrueText / FalseText zawierają dwa możliwe wyniki. Wywołaj EvaluateCondition() aby ocenić warunek bezpośrednio; zwraca FieldIfComparisonResult wartość: True, False, lub Error.


Porównywanie wartości z FieldCompare

FieldCompare implementuje pole COMPARE. Podobnie jak FieldIf, udostępnia LeftExpression, ComparisonOperator i RightExpression do opisania porównania, ale zwraca wynik w stylu logicznym, a nie przełącza pomiędzy dwoma alternatywami tekstowymi.


Zmienne dokumentu z FieldDocVariable

FieldDocVariable implementuje pole DOCVARIABLE, odczytując nazwową zmienną o zakresie dokumentu poprzez jej właściwość VariableName.


Przyciski: FieldGoToButton i FieldMacroButton

FieldGoToButton implementuje pole GOTOBUTTON: Location określa nazwę zakładki, strony lub innego miejsca docelowego, do którego ma nastąpić skok, a DisplayText jest etykietą wyświetlaną w dokumencie. FieldMacroButton implementuje pole MACROBUTTON: MacroName określa nazwę makra do uruchomienia, a DisplayText jest etykietą. Zarówno FieldIf, jak i FieldMacroButton dodatkowo implementują IMergeFieldSurrogate, interfejs używany przez pola świadome scalania korespondencji w Wordzie do oznaczania siebie jako treść podlegającą podstawieniu.


Instrukcje drukowania za pomocą FieldPrint

FieldPrint implementuje pole PRINT: PrinterInstructions i PostScriptGroup zawierają instrukcje specyficzne dla drukarki, osadzone bezpośrednio w dokumencie.


Wskazówki i najlepsze praktyki

  • Użyj FieldIf.EvaluateCondition(), aby odczytać wynik warunku (FieldIfComparisonResult) bez konieczności samodzielnego parsowania TrueText/FalseText.
  • FieldCompare i FieldIf mają tę samą strukturę LeftExpression/ComparisonOperator/ RightExpression – kod budujący lub analizujący jedno wyrażenie porównania może być ponownie użyty w obu typach pól.
  • Pamiętaj, że wszystkie te są Field podklasami: GetFieldCode(), Update(), Remove(), i Unlink() from Praca z polami zastosuj dokładnie w ten sam sposób tutaj.

Typowe problemy

ProblemPrzyczynaNaprawa
FieldIf.EvaluateCondition() zwraca ErrorOperandy lub operator warunku nie mogły zostać ocenione zgodnie z zapisemSprawdź LeftExpression, ComparisonOperator i RightExpression pod kątem prawidłowych wartości
Wynik FieldDocVariable nie odzwierciedla oczekiwanej wartości zmiennejVariableName nie pasuje do nazwy zmiennej faktycznie występującej w dokumenciePotwierdź dokładną nazwę zmiennej oraz jej istnienie przed odczytaniem Result
tekst wyświetlany FieldGoToButton/FieldMacroButton nie zgadza się z tym, co pokazuje WordDisplayText został odczytany przed zaktualizowaniem pola lub został ustawiony bez odpowiadającego wywołania Update()Wywołaj Update() na polu lub ponownie odczytaj DisplayText po każdej zmianie

FAQ

Jak odczytać wynik warunkowego pola IF?

Wywołaj FieldIf.EvaluateCondition() po surowy FieldIfComparisonResult, lub odczytaj TrueText / FalseText dla dwóch dosłownych alternatyw tekstowych, między którymi pole się przełącza.

Jaka jest różnica między FieldIf a FieldCompare?

FieldIf (pole IF) przełącza się między TrueText a FalseText w zależności od warunku. FieldCompare (pole COMPARE) ma taką samą strukturę porównania, ale zwraca wynik w stylu boolowskim, a nie alternatywny tekst.

Jak odczytać nazwę zmiennej dokumentu z pola DOCVARIABLE?

Przeczytaj FieldDocVariable.VariableName.

Jak znaleźć miejsce docelowe pola GOTOBUTTON?

Przeczytaj FieldGoToButton.Location; DisplayText podaje etykietę wyświetlaną na przycisku w dokumencie.


API Reference Podsumowanie

Klasa / EnumOpis
FieldIfIF pole; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultWynik Enum FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE pole; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE pole; VariableName
FieldGoToButtonGOTOBUTTON pole; Location, DisplayText
FieldMacroButtonMACROBUTTON pole; MacroName, DisplayText
FieldPrintPRINT pole; PrinterInstructions, PostScriptGroup

Zobacz także

 Polski