Construirea câmpurilor cu FieldBuilder

Construirea câmpurilor cu FieldBuilder

Construirea câmpurilor cu FieldBuilder

Acest ghid arată cum să construiești un câmp Word de la zero în Aspose.Words FOSS pentru .NET utilizând FieldBuilder and FieldArgumentBuilder, în loc să lucrezi cu un câmp care există deja într-un document. Pentru citirea, actualizarea sau eliminarea câmpurilor existente, vezi Lucrul cu câmpuri ghidul.


Crearea unui câmp cu FieldBuilder

FieldBuilder construiește un câmp din tokenuri de cod de câmp — argumente și comutatoare. Construiți unul cu new FieldBuilder(fieldType), trecând FieldType al câmpului pe care doriți să-l construiți. Adăugați argumente cu metoda suprascrisă AddArgument(argument), care acceptă un string, int, double, un FieldBuilder imbricat, sau un FieldArgumentBuilder. Adăugați comutatoare cu metodele suprascrise AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), sau AddSwitch(switchName, switchArgument) (int/double).


Inserarea câmpului construit

Odată ce un FieldBuilder are argumentele și comutatoarele sale, apelați BuildAndInsert(refNode) pentru a-l insera în document — o suprasarcină acceptă un nod Inline și inserează câmpul înainte de acesta, iar alta acceptă un Paragraph și inserează câmpul la sfârșitul acelui paragraf.


Compunerea argumentelor complexe cu FieldArgumentBuilder

FieldArgumentBuilder construiește un argument de câmp complex format din câmpuri, noduri și text simplu, pentru cazurile în care un singur argument are nevoie de mai mult decât un șir simplu. Construiește unul cu new FieldArgumentBuilder(), apoi apelează AddText(text) pentru a adăuga text simplu, AddNode(node) pentru a adăuga un nod Inline, sau AddField(fieldBuilder) pentru a încorpora un alt câmp (construit cu propriul său FieldBuilder) în interiorul argumentului. Transmite FieldArgumentBuilder finalizat către FieldBuilder.AddArgument(argument) pentru a-l folosi ca unul dintre argumentele câmpului exterior.


Sfaturi și cele mai bune practici

  • Folosește FieldBuilder când construiești un tip de câmp care nu este susținut de una dintre clasele dedicate de câmp (cum ar fi FieldDate sau FieldSymbol), sau când generezi coduri de câmp programatic din date în loc să le scrii manual.
  • Încadrează un câmp copil în argumentul unui câmp exterior cu FieldBuilder.AddArgument(FieldBuilder) pentru un caz simplu, sau construiește un argument mixt de text, noduri și câmpuri încorporate cu FieldArgumentBuilder când argumentul este mai mult decât un singur câmp.
  • Alege supraîncărcarea BuildAndInsert(refNode) care corespunde locului în care vrei să se plaseze câmpul — înainte de un nod Inline specific sau la sfârșitul unui Paragraph.
  • După BuildAndInsert, tratează rezultatul ca pe orice alt câmp din arbore — de exemplu, apelează Update() pe el dacă tipul de câmp necesită o recalculare explicită.

Probleme comune

ProblemăCauzăRemediere
BuildAndInsert vizează locația greșităSupraincarcarea greșită a fost utilizată pentru punctul de inserare doritTransmite un nod Inline pentru a-l insera înainte, sau un Paragraph pentru a-l insera la sfârșitul său
Un argument de câmp nu va accepta text simplu și un nod simultanAddArgument a fost apelat cu un singur string/int/double în loc de un argument compusConstruiește argumentul mixt cu FieldArgumentBuilder (AddText, AddNode, AddField) și transmite-l către AddArgument
Valoarea comutatorului nu este recunoscută în codul de câmp construitAddSwitch(switchName) a fost utilizat când comutatorul are de fapt nevoie de un argumentFolosește supraincarcarea AddSwitch(switchName, switchArgument) cu valoarea string, int sau double a comutatorului

FAQ

Când ar trebui să folosesc FieldBuilder în loc să inserez un cod de câmp preformat?

Folosește FieldBuilder când ai nevoie de control explicit asupra argumentelor și comutatoarelor unui câmp în timp ce le construiești programatic, în loc să inserezi un șir de cod de câmp preformat.

Cum pot adăuga mai mult de un argument la un câmp?

Apelează AddArgument o dată pentru fiecare argument — este supraîncărcat pentru string, int, double, un FieldBuilder înglobat și FieldArgumentBuilder.

Pot să construiesc un câmp al cărui argument conține un amestec de text și un alt câmp?

Da — folosește FieldArgumentBuilder, apelând AddText, AddNode și AddField după cum este necesar, apoi transmite-l lui FieldBuilder.AddArgument.

Cum pot să introduc efectiv câmpul construit în document?

Apelează BuildAndInsert(refNode), trecând fie un nod Inline (inserează înainte de el), fie un Paragraph (inserează la sfârșitul lui).


API Reference Rezumat

Clasă/MetodăDescriere:
FieldBuilderConstruiește un câmp din token-urile de cod de câmp (argumente și comutatoare)
FieldBuilder(fieldType)Constructor care primește FieldType pentru a construi
FieldBuilder.AddArgument(argument)Adaugă un argument (string, int, double, FieldBuilder sau FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)Adaugă un comutator de câmp, cu sau fără o valoare
FieldBuilder.BuildAndInsert(refNode)Inserează câmpul construit înainte de un nod Inline sau la sfârșitul unui Paragraph
FieldArgumentBuilderConstruiește un argument complex de câmp din text, noduri și câmpuri imbricate
FieldArgumentBuilder.AddText(text)Adaugă text simplu la argument
FieldArgumentBuilder.AddNode(node)Adaugă un nod Inline la argument
FieldArgumentBuilder.AddField(fieldBuilder)Încorporează un câmp construit de FieldBuilder în argument

Vezi și:

 Română