Bygga fält med FieldBuilder

Bygga fält med FieldBuilder

Bygga fält med FieldBuilder

Den här guiden visar hur man konstruerar ett Word-fält från grunden i Aspose.Words FOSS för .NET med hjälp av FieldBuilder and FieldArgumentBuilder, istället för att arbeta med ett fält som redan finns i ett dokument. För att läsa, uppdatera eller ta bort befintliga fält, se Arbeta med fält guiden.


Skapa ett fält med FieldBuilder

FieldBuilder bygger ett fält från fältkodstoken — argument och switchar. Konstruera ett med new FieldBuilder(fieldType) och ange FieldType för det fält du vill bygga. Lägg till argument med den överlagrade AddArgument(argument)-metoden, som accepterar en string, int, double, en nästlad FieldBuilder eller en FieldArgumentBuilder. Lägg till switchar med de överlagrade AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) eller AddSwitch(switchName, switchArgument) (int/double)-metoderna.


Infoga det byggda fältet

När ett FieldBuilder har sina argument och switchar, anropa BuildAndInsert(refNode) för att infoga det i dokumentet — en överlagring accepterar en Inline-nod och infogar fältet före den, och en annan accepterar en Paragraph och infogar fältet i slutet av det stycket.


Sammansätta komplexa argument med FieldArgumentBuilder

FieldArgumentBuilder bygger ett komplext fältargument bestående av fält, noder och vanlig text, för fall där ett enda argument behöver mer än en enkel sträng. Skapa ett med new FieldArgumentBuilder(), anropa sedan AddText(text) för att lägga till vanlig text, AddNode(node) för att lägga till en Inline nod, eller AddField(fieldBuilder) för att nästla ett annat fält (byggt med sin egen FieldBuilder) i argumentet. Skicka det färdiga FieldArgumentBuilder till FieldBuilder.AddArgument(argument) för att använda det som ett av det yttre fältets argument.


Tips och bästa praxis

  • Använd FieldBuilder när du konstruerar en fälttyp som inte stöds av någon av de dedikerade fältklasserna (såsom FieldDate eller FieldSymbol), eller när du genererar fältkoder programatiskt från data istället för att skriva dem för hand.
  • Nästla ett underfält i ett yttre fälts argument med FieldBuilder.AddArgument(FieldBuilder) för ett enkelt fall, eller bygg ett blandat argument av text, noder och nästlade fält med FieldArgumentBuilder när argumentet är mer än ett enda fält.
  • Välj den BuildAndInsert(refNode) överlagring som matchar där du vill placera fältet — före en specifik Inline nod, eller i slutet av en Paragraph.
  • Efter BuildAndInsert behandla resultatet som vilket annat fält som helst i trädet — till exempel, anropa Update() på det om fälttypen kräver en explicit omberäkning.

Vanliga problem

ProblemOrsakLösning
BuildAndInsert riktar in sig på fel platsFel overload användes för den avsedda infogningspunktenSkicka en Inline-nod för att infoga före den, eller en Paragraph för att infoga i slutet
Ett fältargument accepterar inte vanlig text och en nod samtidigtAddArgument anropades med en enda string/int/double istället för ett sammansatt argumentBygg det blandade argumentet med FieldArgumentBuilder (AddText, AddNode, AddField) och skicka det till AddArgument
Switch-värdet känns inte igen i den byggda fältkodenAddSwitch(switchName) användes när switchen faktiskt behöver ett argumentAnvänd AddSwitch(switchName, switchArgument)-overloaden med switchens sträng-, int- eller double-värde

FAQ

När bör jag använda FieldBuilder istället för att infoga en förformad fältkod?

Använd FieldBuilder när du behöver explicit kontroll över ett fälts argument och växlar när du konstruerar dem programmässigt, snarare än att infoga en förformad fältkodsträng.

Hur lägger jag till fler än ett argument till ett fält?

Anropa AddArgument en gång per argument — den är överlagrad för string, int, double, en nästlad FieldBuilder och FieldArgumentBuilder.

Kan jag skapa ett fält vars argument innehåller en blandning av text och ett annat fält?

Ja — använd FieldArgumentBuilder, anropa AddText, AddNode och AddField efter behov, och skicka sedan det till FieldBuilder.AddArgument.

Hur lägger jag faktiskt in det byggda fältet i dokumentet?

Anropa BuildAndInsert(refNode), och skicka antingen en Inline-nod (infogar före den) eller en Paragraph (infogar i slutet av den).


API Reference Sammanfattning

Klass/MetodBeskrivning
FieldBuilderBygger ett fält från fältkodstoken (argument och flaggor)
FieldBuilder(fieldType)Konstruktor som tar FieldType för att bygga
FieldBuilder.AddArgument(argument)Lägger till ett argument (string, int, double, FieldBuilder eller FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Lägger till en fältväxel, med eller utan ett värde
FieldBuilder.BuildAndInsert(refNode)Infogar det byggda fältet före en Inline nod eller i slutet av en Paragraph
FieldArgumentBuilderBygger ett komplext fältargument från text, noder och nästlade fält
FieldArgumentBuilder.AddText(text)Lägger till vanlig text till argumentet
FieldArgumentBuilder.AddNode(node)Lägger till en Inline-nod till argumentet
FieldArgumentBuilder.AddField(fieldBuilder)Inbäddar ett fält som byggts av FieldBuilder i argumentet

Se även

 Svenska