Velden bouwen met FieldBuilder

Velden bouwen met FieldBuilder

Velden bouwen met FieldBuilder

Deze gids laat zien hoe je een Word-veld vanaf nul kunt construeren in Aspose.Words FOSS voor .NET met behulp van FieldBuilder and FieldArgumentBuilder, in plaats van te werken met een veld dat al bestaat in een document. Voor het lezen, bijwerken of verwijderen van bestaande velden, zie de Werken met velden gids.


Een veld maken met FieldBuilder

FieldBuilder bouwt een veld op basis van veldcode-tokens — argumenten en schakelaars. Maak er één met new FieldBuilder(fieldType), waarbij je de FieldType van het veld dat je wilt bouwen doorgeeft. Voeg argumenten toe met de overladen AddArgument(argument)-methode, die een string, int, double, een geneste FieldBuilder of een FieldArgumentBuilder accepteert. Voeg schakelaars toe met de overladen AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) of AddSwitch(switchName, switchArgument) (int/double) methoden.


Het opgebouwde veld invoegen

Zodra een FieldBuilder zijn argumenten en schakelaars heeft, roep je BuildAndInsert(refNode) aan om het in het document in te voegen — de ene overload accepteert een Inline-knooppunt en voegt het veld ervoor in, en de andere accepteert een Paragraph en voegt het veld aan het einde van die alinea in.


Complexe argumenten samenstellen met FieldArgumentBuilder

FieldArgumentBuilder bouwt een complex veldargument bestaande uit velden, knooppunten en platte tekst, voor gevallen waarin een enkel argument meer nodig heeft dan een eenvoudige tekenreeks. Maak er één met new FieldArgumentBuilder(), roep vervolgens AddText(text) aan om platte tekst toe te voegen, AddNode(node) om een Inline knooppunt toe te voegen, of AddField(fieldBuilder) om een ander veld (gebouwd met zijn eigen FieldBuilder) te nesten binnen het argument. Geef het voltooide FieldArgumentBuilder door aan FieldBuilder.AddArgument(argument) om het te gebruiken als een van de argumenten van het buitenste veld.


Tips en beste praktijken

  • Gebruik FieldBuilder bij het construeren van een veldtype dat niet wordt ondersteund door een van de gespecialiseerde veldklassen (zoals FieldDate of FieldSymbol), of wanneer je veldcodes programmatisch genereert vanuit gegevens in plaats van ze handmatig te schrijven.
  • Nest een subveld binnen een argument van een buitenste veld met FieldBuilder.AddArgument(FieldBuilder) voor een eenvoudig geval, of bouw een gemengd argument van tekst, knooppunten en geneste velden met FieldArgumentBuilder wanneer het argument meer is dan één enkel veld.
  • Kies de BuildAndInsert(refNode) overload die overeenkomt met de gewenste plaats voor het veld — vóór een specifiek Inline knooppunt, of aan het einde van een Paragraph.
  • Na BuildAndInsert behandel je het resultaat als elk ander veld in de boom — roep bijvoorbeeld Update() erop aan als het veldtype een expliciete herberekening vereist.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
BuildAndInsert richt zich op de verkeerde locatieDe verkeerde overload werd gebruikt voor het beoogde invoegpuntGeef een Inline node door om ervoor in te voegen, of een Paragraph om aan het einde ervan in te voegen
Een veldargument accepteert geen platte tekst en een node tegelijkAddArgument werd aangeroepen met een enkele string/int/double in plaats van een samengesteld argumentBouw het gemengde argument op met FieldArgumentBuilder (AddText, AddNode, AddField) en geef dat door aan AddArgument
Schakelwaarde wordt niet herkend in de gegenereerde veldcodeAddSwitch(switchName) werd gebruikt terwijl de schakel eigenlijk een argument nodig heeftGebruik de AddSwitch(switchName, switchArgument) overload met de string-, int- of double-waarde van de schakel

FAQ

Wanneer moet ik FieldBuilder gebruiken in plaats van een vooraf gevormde veldcode in te voegen?

Gebruik FieldBuilder wanneer je expliciete controle nodig hebt over de argumenten en schakelaars van een veld terwijl je ze programmatisch opbouwt, in plaats van een vooraf gevormde veldcode-string in te voegen.

Hoe voeg ik meer dan één argument toe aan een veld?

Roep AddArgument één keer per argument aan — hij is overladen voor string, int, double, een geneste FieldBuilder en FieldArgumentBuilder.

Kan ik een veld bouwen waarvan het argument een mix van tekst en een ander veld bevat?

Ja — gebruik FieldArgumentBuilder, roep AddText, AddNode en AddField naar behoefte aan, en geef het vervolgens door aan FieldBuilder.AddArgument.

Hoe plaats ik het gebouwde veld daadwerkelijk in het document?

Roep BuildAndInsert(refNode) aan, waarbij je een Inline-knooppunt (voegt ervoor in) of een Paragraph (voegt er aan het einde in) doorgeeft.


API Reference Samenvatting

Klasse/MethodeBeschrijving
FieldBuilderBouwt een veld op uit veldcode-tokens (argumenten en schakelaars)
FieldBuilder(fieldType)Constructor die de FieldType neemt om te bouwen
FieldBuilder.AddArgument(argument)Voegt een argument toe (string, int, double, FieldBuilder of FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Voegt een veldschakelaar toe, met of zonder een waarde
FieldBuilder.BuildAndInsert(refNode)Voegt het gebouwde veld in vóór een Inline knooppunt of aan het einde van een Paragraph
FieldArgumentBuilderBouwt een complex veldargument op uit tekst, knooppunten en geneste velden
FieldArgumentBuilder.AddText(text)Voegt platte tekst toe aan het argument
FieldArgumentBuilder.AddNode(node)Voegt een Inline node toe aan het argument
FieldArgumentBuilder.AddField(fieldBuilder)Nestelt een veld dat is gebouwd door FieldBuilder in het argument

Zie ook

 Nederlands