Erstellen von Feldern mit FieldBuilder

Erstellen von Feldern mit FieldBuilder

Felder erstellen mit FieldBuilder

Dieser Leitfaden zeigt, wie man ein Word-Feld von Grund auf in Aspose.Words FOSS für .NET mithilfe von FieldBuilder and FieldArgumentBuilder, anstatt mit einem Feld zu arbeiten, das bereits in einem Dokument existiert. Zum Lesen, Aktualisieren oder Entfernen vorhandener Felder siehe die Arbeiten mit Feldern Anleitung.


Ein Feld erstellen mit FieldBuilder

FieldBuilder erstellt ein Feld aus Feldcode-Token — Argumenten und Schaltern. Erstelle eines mit new FieldBuilder(fieldType), indem du das FieldType des Feldes übergibst, das du bauen möchtest. Füge Argumente mit der überladenen AddArgument(argument)-Methode hinzu, die ein string, int, double, ein verschachteltes FieldBuilder oder ein FieldArgumentBuilder akzeptiert. Schalter werden mit den überladenen AddSwitch(switchName), AddSwitch(switchName, switchArgument) (String) oder AddSwitch(switchName, switchArgument) (int/double)-Methoden hinzugefügt.


Einfügen des erstellten Feldes

Sobald ein FieldBuilder seine Argumente und Schalter hat, rufe BuildAndInsert(refNode) auf, um ihn in das Dokument einzufügen — eine Überladung akzeptiert einen Inline-Knoten und fügt das Feld davor ein, und eine andere akzeptiert ein Paragraph und fügt das Feld am Ende dieses Absatzes ein.


Komplexe Argumente zusammensetzen mit FieldArgumentBuilder

FieldArgumentBuilder erstellt ein komplexes Feldargument, das aus Feldern, Knoten und Klartext besteht, für Fälle, in denen ein einzelnes Argument mehr als einen einfachen String benötigt. Erstelle eines mit new FieldArgumentBuilder(), rufe dann AddText(text) auf, um Klartext hinzuzufügen, AddNode(node), um einen Inline-Knoten hinzuzufügen, oder AddField(fieldBuilder), um ein weiteres Feld (erstellt mit seinem eigenen FieldBuilder) im Argument zu verschachteln. Übergebe das fertiggestellte FieldArgumentBuilder an FieldBuilder.AddArgument(argument), um es als eines der Argumente des äußeren Feldes zu verwenden.


Tipps und bewährte Vorgehensweisen

  • Verwende FieldBuilder, wenn du einen Feldtyp konstruierst, der nicht von einer der dedizierten Feldklassen unterstützt wird (wie FieldDate oder FieldSymbol), oder wenn du Feldcodes programmgesteuert aus Daten generierst, anstatt sie von Hand zu erstellen.
  • Verschachtle ein untergeordnetes Feld innerhalb des Arguments eines äußeren Feldes mit FieldBuilder.AddArgument(FieldBuilder) für einen einfachen Fall, oder erstelle ein gemischtes Argument aus Text, Knoten und verschachtelten Feldern mit FieldArgumentBuilder, wenn das Argument mehr als ein einzelnes Feld ist.
  • Wähle die BuildAndInsert(refNode)-Überladung, die dem gewünschten Einfügeort des Feldes entspricht — vor einem bestimmten Inline-Knoten oder am Ende eines Paragraph.
  • Nach BuildAndInsert behandle das Ergebnis wie jedes andere Feld im Baum — zum Beispiel rufe Update() darauf auf, wenn der Feldtyp eine explizite Neuberechnung erfordert.

Häufige Probleme

ProblemUrsacheLösung
BuildAndInsert zielt auf den falschen OrtDie falsche Überladung wurde für den beabsichtigten Einfügepunkt verwendetÜbergeben Sie einen Inline node, um davor einzufügen, oder ein Paragraph, um am Ende einzufügen
Ein Feldargument akzeptiert nicht gleichzeitig Klartext und einen nodeAddArgument wurde mit einem einzelnen string/int/double anstelle eines zusammengesetzten Arguments aufgerufenErzeugen Sie das gemischte Argument mit FieldArgumentBuilder (AddText, AddNode, AddField) und übergeben Sie es an AddArgument
Der Schalterwert wird im erzeugten Feldcode nicht erkanntAddSwitch(switchName) wurde verwendet, obwohl der Schalter tatsächlich ein Argument benötigtVerwenden Sie die AddSwitch(switchName, switchArgument) Überladung mit dem String-, Int- oder Double-Wert des Schalters

FAQ

Wann sollte ich FieldBuilder verwenden, anstatt einen vorgefertigten Feldcode einzufügen?

Verwenden Sie FieldBuilder, wenn Sie beim programmgesteuerten Erstellen eines Feldes explizite Kontrolle über dessen Argumente und Schalter benötigen, anstatt einen vorgefertigten Feldcode-String einzufügen.

Wie füge ich einem Feld mehr als ein Argument hinzu?

Rufen Sie AddArgument einmal pro Argument auf — es ist überladen für string, int, double, ein verschachteltes FieldBuilder und FieldArgumentBuilder.

Kann ich ein Feld erstellen, dessen Argument eine Mischung aus Text und einem anderen Feld enthält?

Ja — verwenden Sie FieldArgumentBuilder, rufen Sie bei Bedarf AddText, AddNode und AddField auf und übergeben Sie es anschließend an FieldBuilder.AddArgument.

Wie füge ich das erstellte Feld tatsächlich in das Dokument ein?

Rufen Sie BuildAndInsert(refNode) auf und übergeben entweder ein Inline-Knoten (fügt davor ein) oder ein Paragraph (fügt am Ende ein).


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
FieldBuilderErstellt ein Feld aus Feldcode-Token (Argumente und Schalter)
FieldBuilder(fieldType)Konstruktor, der das FieldType zum Erstellen entgegennimmt
FieldBuilder.AddArgument(argument)Fügt ein Argument hinzu (string, int, double, FieldBuilder oder FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Fügt einen Feldschalter hinzu, mit oder ohne Wert
FieldBuilder.BuildAndInsert(refNode)Fügt das erstellte Feld vor einem Inline-Knoten ein oder am Ende eines Paragraph
FieldArgumentBuilderErstellt ein komplexes Feldargument aus Text, Knoten und verschachtelten Feldern
FieldArgumentBuilder.AddText(text)Fügt dem Argument einfachen Text hinzu
FieldArgumentBuilder.AddNode(node)Fügt dem Argument einen Inline-Knoten hinzu
FieldArgumentBuilder.AddField(fieldBuilder)Verschachtelt ein Feld, das von FieldBuilder erstellt wurde, im Argument

Siehe auch

 Deutsch