Mezők létrehozása a FieldBuilderrel
Mezők létrehozása a FieldBuilder segítségével
Ez az útmutató bemutatja, hogyan lehet egy Word mezőt a semmiből felépíteni a Aspose.Words FOSS-ban a .NET számára, használva FieldBuilder and FieldArgumentBuilder, ahelyett, hogy egy már meglévő mezővel dolgozna egy dokumentumban. A meglévő mezők olvasásához, frissítéséhez vagy eltávolításához lásd a Mezőkkel való munka útmutató.
Mező létrehozása a FieldBuilder használatával
FieldBuilder mezőt épít fel mezőkód-tokenekből — argumentumok és kapcsolók. Készíts egyet a new FieldBuilder(fieldType) segítségével, megadva a felépíteni kívánt mező FieldType értékét. Argumentumokat adj hozzá a túlterhelt AddArgument(argument) metódussal, amely egy string, int, double, egy beágyazott FieldBuilder vagy egy FieldArgumentBuilder típust fogad el. Kapcsolókat adj hozzá a túlterhelt AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), vagy AddSwitch(switchName, switchArgument) (int/double) metódusokkal.
A felépített mező beszúrása
Miután a(z) FieldBuilder megkapta az argumentumait és kapcsolóit, hívd a(z) BuildAndInsert(refNode) függvényt a dokumentumba való beszúrásához — az egyik túlterhelés egy Inline csomópontot fogad el, és a mezőt előtte helyezi el, a másik egy Paragraph-t fogad, és a mezőt a bekezdés végére szúrja be.
Összetett argumentumok összeállítása a FieldArgumentBuilder segítségével
FieldArgumentBuilder összetett mezőargumentumot épít fel, amely mezőkből, csomópontokból és egyszerű szövegből áll, olyan esetekben, amikor egyetlen argumentumnak több mint egy egyszerű karakterláncra van szüksége. Készíts egyet a new FieldArgumentBuilder() segítségével, majd hívd a AddText(text)-t egyszerű szöveg hozzáadásához, a AddNode(node)-t egy Inline csomópont hozzáadásához, vagy a AddField(fieldBuilder)-t egy másik mező (a saját FieldBuilder-jával építve) beágyazásához az argumentumba. Add át a elkészült FieldArgumentBuilder-t a FieldBuilder.AddArgument(argument)-nek, hogy a külső mező egyik argumentumaként használhasd.
Tippek és bevált gyakorlatok
FieldBuilderhasználata akkor javasolt, amikor olyan mezőtípust építesz, amelyet nem támogat egyik dedikált mezőosztály (példáulFieldDatevagyFieldSymbol), vagy amikor a mezőkódokat programozottan generálod adatokból, a kézi szerkesztés helyett.- Ágyazz be egy gyermekmezőt egy külső mező argumentumába a
FieldBuilder.AddArgument(FieldBuilder)segítségével egyszerű esetben, vagy építs vegyes argumentumot szövegből, csomópontokból és beágyazott mezőkből aFieldArgumentBuilderhasználatával, ha az argumentum több, mint egyetlen mező. - Válaszd ki a megfelelő
BuildAndInsert(refNode)túlterhelést, amely megfelel annak a helynek, ahová a mezőt el szeretnéd helyezni — egy adottInlinecsomópont előtt, vagy egyParagraphvégén. - A
BuildAndInsertután kezeld az eredményt a fa bármely más mezőjeként — például hívd aUpdate()-t rajta, ha a mezőtípus kifejezett újraszámítást igényel.
Gyakori problémák
| Probléma | Oka | Javítás |
|---|---|---|
BuildAndInsert a rossz helyet célozza meg | A kívánt beszúrási ponthoz a rossz overload lett használva | Adj át egy Inline csomópontot a beszúráshoz előtte, vagy egy Paragraph elemet a végére |
| A mezőargumentum nem fogadja el egyszerre a tiszta szöveget és egy csomópontot | AddArgument egyetlen string/int/double paraméterrel lett meghívva, a komponált argumentum helyett | Építsd fel a vegyes argumentumot a FieldArgumentBuilder segítségével (AddText, AddNode, AddField), és add át a AddArgument számára |
| A kapcsoló értékét a felépített mezőkódban nem ismeri fel | AddSwitch(switchName) lett használva, pedig a kapcsolónak valójában argumentumra van szüksége | Használd a AddSwitch(switchName, switchArgument) overload-et a kapcsoló string, int vagy double értékével |
FAQ
Mikor kellene a FieldBuilder használni a már előre elkészített mezőkód beszúrása helyett?
Használd a FieldBuilder-t, amikor programozott módon kell explicit módon irányítanod a mező argumentumait és kapcsolóit, ahelyett, hogy egy előre elkészített mezőkód karakterláncot szúrnál be.
Hogyan adhatok hozzá egynél több argumentumot egy mezőhöz?
Hívd meg a AddArgument-t argumentumonként egyszer— túlterhelt a string, int, double, egy beágyazott FieldBuilder, valamint a FieldArgumentBuilder esetében.
Építhetek olyan mezőt, amelynek argumentuma szöveg és egy másik mező keverékét tartalmaz?
Igen— használd a FieldArgumentBuilder-t, szükség szerint meghívva a AddText, AddNode és AddField elemeket, majd add át a FieldBuilder.AddArgument-nek.
Hogyan helyezhetem el ténylegesen az épített mezőt a dokumentumban?
Hívd meg a BuildAndInsert(refNode)-t, átadva egy Inline csomópontot (amely elé szúrásra kerül) vagy egy Paragraph-t (amelynek végére szúrásra kerül).
API Reference Összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
FieldBuilder | Mezőt épít fel a mezőkód tokenekből (argumentumok és kapcsolók) |
FieldBuilder(fieldType) | Konstruktor, amely a FieldType paramétert veszi az építéshez |
FieldBuilder.AddArgument(argument) | Argumentumot ad hozzá (string, int, double, FieldBuilder vagy FieldArgumentBuilder) |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | Mezőkapcsolót ad hozzá, értékkel vagy érték nélkül |
FieldBuilder.BuildAndInsert(refNode) | Beszúrja a felépített mezőt egy Inline csomópont előtt, vagy egy Paragraph végére. |
FieldArgumentBuilder | Összeállít egy összetett mezőargumentumot szövegből, csomópontokból és beágyazott mezőkből. |
FieldArgumentBuilder.AddText(text) | Egyszerű szöveget ad hozzá az argumentumhoz. |
FieldArgumentBuilder.AddNode(node) | Hozzáad egy Inline csomópontot az argumentumhoz. |
FieldArgumentBuilder.AddField(fieldBuilder) | Beágyaz egy mezőt, amelyet a FieldBuilder épített, az argumentumba |