Budowanie pól przy użyciu FieldBuilder

Budowanie pól przy użyciu FieldBuilder

Tworzenie pól za pomocą FieldBuilder

Ten przewodnik pokazuje, jak od podstaw skonstruować pole Word w Aspose.Words FOSS dla .NET używając FieldBuilder and FieldArgumentBuilder, zamiast pracować z polem, które już istnieje w dokumencie. Aby odczytać, zaktualizować lub usunąć istniejące pola, zobacz Praca z polami przewodnik.


Tworzenie pola za pomocą FieldBuilder

FieldBuilder tworzy pole z tokenów kodu pola — argumentów i przełączników. Utwórz je za pomocą new FieldBuilder(fieldType), przekazując FieldType pola, które chcesz zbudować. Dodaj argumenty przy użyciu przeciążonej metody AddArgument(argument), która przyjmuje string, int, double, zagnieżdżony FieldBuilder lub FieldArgumentBuilder. Dodaj przełączniki przy użyciu przeciążonych metod AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) lub AddSwitch(switchName, switchArgument) (int/double).


Wstawianie zbudowanego pola

Gdy FieldBuilder posiada swoje argumenty i przełączniki, wywołaj BuildAndInsert(refNode), aby wstawić je do dokumentu — jedno przeciążenie przyjmuje węzeł Inline i wstawia pole przed nim, a drugie przyjmuje Paragraph i wstawia pole na końcu tego akapitu.


Tworzenie złożonych argumentów za pomocą FieldArgumentBuilder

FieldArgumentBuilder tworzy złożony argument pola składający się z pól, węzłów i zwykłego tekstu, w przypadkach, gdy pojedynczy argument wymaga więcej niż zwykłego ciągu znaków. Utwórz go za pomocą new FieldArgumentBuilder(), a następnie wywołaj AddText(text), aby dodać zwykły tekst, AddNode(node), aby dodać węzeł Inline, lub AddField(fieldBuilder), aby zagnieździć inne pole (zbudowane przy użyciu własnego FieldBuilder) wewnątrz argumentu. Przekaż gotowy FieldArgumentBuilder do FieldBuilder.AddArgument(argument), aby użyć go jako jednego z argumentów pola zewnętrznego.


Wskazówki i najlepsze praktyki

  • Użyj FieldBuilder, gdy tworzysz typ pola, który nie jest obsługiwany przez jedną z dedykowanych klas pól (takich jak FieldDate lub FieldSymbol), lub gdy generujesz kody pól programowo na podstawie danych, zamiast ręcznie je tworzyć.
  • Zagnieźdź pole podrzędne wewnątrz argumentu pola zewnętrznego przy użyciu FieldBuilder.AddArgument(FieldBuilder) w prostym przypadku, lub zbuduj mieszany argument tekstu, węzłów i zagnieżdżonych pól przy pomocy FieldArgumentBuilder, gdy argument obejmuje więcej niż jedno pole.
  • Wybierz przeciążenie BuildAndInsert(refNode), które odpowiada miejscu, w którym ma się znaleźć pole — przed określonym węzłem Inline lub na końcu Paragraph.
  • Po BuildAndInsert traktuj wynik jak każde inne pole w drzewie — na przykład wywołaj na nim Update(), jeśli typ pola wymaga wyraźnego przeliczenia.

Typowe problemy

ProblemPrzyczynaRozwiązanie
BuildAndInsert wskazuje niewłaściwą lokalizacjęUżyto niewłaściwej przeciążonej wersji dla zamierzonego punktu wstawianiaPrzekaż węzeł Inline, aby wstawić przed nim, lub Paragraph, aby wstawić na jego końcu
Argument pola nie akceptuje jednocześnie zwykłego tekstu i węzłaAddArgument został wywołany z pojedynczym string/int/double zamiast z argumentem złożonymZbuduj mieszany argument przy użyciu FieldArgumentBuilder (AddText, AddNode, AddField) i przekaż go do AddArgument
Wartość przełącznika nie jest rozpoznawana w wygenerowanym kodzie polaAddSwitch(switchName) został użyty, gdy przełącznik faktycznie wymaga argumentuUżyj przeciążenia AddSwitch(switchName, switchArgument) z wartością string, int lub double przełącznika

FAQ

Kiedy powinno się używać FieldBuilder zamiast wstawiać gotowy kod pola?

Użyj FieldBuilder, gdy potrzebujesz jawnej kontroli nad argumentami i przełącznikami pola podczas ich programowego budowania, zamiast wstawiać gotowy ciąg kodu pola.

Jak dodać do pola więcej niż jeden argument?

Wywołaj AddArgument raz dla każdego argumentu — jest przeciążony dla string, int, double, zagnieżdżonego FieldBuilder oraz FieldArgumentBuilder.

Czy mogę zbudować pole, którego argument zawiera mieszankę tekstu i innego pola?

Tak — użyj FieldArgumentBuilder, wywołując w razie potrzeby AddText, AddNode i AddField, a następnie przekaż to do FieldBuilder.AddArgument.

Jak właściwie wstawić zbudowane pole do dokumentu?

Wywołaj BuildAndInsert(refNode), przekazując albo węzeł Inline (wstawia przed nim), albo Paragraph (wstawia na jego końcu).


API Reference Podsumowanie

Klasa/MetodaOpis
FieldBuilderTworzy pole z tokenów kodu pola (argumenty i przełączniki)
FieldBuilder(fieldType)Konstruktor przyjmujący FieldType do zbudowania
FieldBuilder.AddArgument(argument)Dodaje argument (string, int, double, FieldBuilder lub FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Dodaje przełącznik pola, z wartością lub bez niej
FieldBuilder.BuildAndInsert(refNode)Wstawia zbudowane pole przed węzłem Inline lub na końcu Paragraph
FieldArgumentBuilderTworzy złożony argument pola z tekstu, węzłów i zagnieżdżonych pól
FieldArgumentBuilder.AddText(text)Dodaje zwykły tekst do argumentu
FieldArgumentBuilder.AddNode(node)Dodaje węzeł Inline do argumentu
FieldArgumentBuilder.AddField(fieldBuilder)Zagnieżdża pole utworzone przez FieldBuilder w argumencie

Zobacz także

 Polski