Vytváření polí pomocí FieldBuilder
Vytváření polí s FieldBuilder
Tento průvodce ukazuje, jak vytvořit pole Wordu od nuly v Aspose.Words FOSS pro .NET pomocí FieldBuilder and FieldArgumentBuilder, místo práce s polem, které již v dokumentu existuje. Pro čtení, aktualizaci nebo odstranění existujících polí viz Práce s poli průvodce.
Vytvoření pole s FieldBuilder
FieldBuilder vytváří pole z tokenů kódu pole—argumentů a přepínačů. Vytvořte ho pomocí new FieldBuilder(fieldType), přičemž předáte FieldType pole, které chcete vytvořit. Argumenty přidávejte pomocí přetížené metody AddArgument(argument), která přijímá string, int, double, vnořený FieldBuilder nebo FieldArgumentBuilder. Přepínače přidávejte pomocí přetížených metod AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) nebo AddSwitch(switchName, switchArgument) (int/double).
Vkládání vytvořeného pole
Jakmile má FieldBuilder své argumenty a přepínače, zavolejte BuildAndInsert(refNode) pro vložení do dokumentu—jedna přetížená verze přijímá uzel Inline a vloží pole před něj, a druhá přijímá Paragraph a vloží pole na konec toho odstavce.
Skládání složitých argumentů s FieldArgumentBuilder
FieldArgumentBuilder vytváří složitý argument pole složený z polí, uzlů a prostého textu, pro případy, kdy jeden argument potřebuje více než prostý řetězec. Vytvořte jej pomocí new FieldArgumentBuilder(), poté zavolejte AddText(text) pro přidání prostého textu, AddNode(node) pro přidání uzlu Inline, nebo AddField(fieldBuilder) pro vnoření dalšího pole (vytvořeného pomocí vlastního FieldBuilder) do argumentu. Předáte dokončený FieldArgumentBuilder do FieldBuilder.AddArgument(argument), abyste jej použili jako jeden z argumentů vnějšímu poli.
Tipy a osvědčené postupy
- Použijte
FieldBuilder, když vytváříte typ pole, který není podporován jednou z dedikovaných tříd polí (např.FieldDateneboFieldSymbol), nebo když generujete kódy polí programově z dat místo jejich ručního psaní. - Vnořte podřízené pole do argumentu vnějšího pole pomocí
FieldBuilder.AddArgument(FieldBuilder)pro jednoduchý případ, nebo vytvořte smíšený argument textu, uzlů a vnořených polí pomocíFieldArgumentBuilder, když argument zahrnuje více než jedno pole. - Vyberte přetížení
BuildAndInsert(refNode), které odpovídá místu, kam chcete pole umístit — před konkrétní uzelInline, nebo na konecParagraph. - Po
BuildAndInsertzacházejte s výsledkem jako s libovolným jiným polem ve stromu — například na něj zavolejteUpdate(), pokud typ pole vyžaduje explicitní přepočet.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
BuildAndInsert cílí na špatné místo | Bylo použito špatné přetížení pro zamýšlený bod vložení | Předejte uzel Inline pro vložení před něj, nebo Paragraph pro vložení na jeho konec |
| Argument pole nepřijme současně prostý text a uzel | AddArgument byl volán s jedním string/int/double místo složeného argumentu | Sestavte smíšený argument pomocí FieldArgumentBuilder (AddText, AddNode, AddField) a předávejte jej AddArgument |
| Hodnota přepínače není rozpoznána v generovaném kódu pole | Byl použit AddSwitch(switchName), přestože přepínač skutečně vyžaduje argument | Použijte přetížení AddSwitch(switchName, switchArgument) s řetězcem, int nebo double hodnotou přepínače |
FAQ
Kdy mám použít FieldBuilder místo vložení předem vytvořeného kódu pole?
Použijte FieldBuilder, když potřebujete explicitní kontrolu nad argumenty a přepínači pole při jejich programovém sestavování, místo vložení předem vytvořeného řetězce kódu pole.
Jak přidám do pole více než jeden argument?
Zavolejte AddArgument jednou na každý argument — je přetížený pro string, int, double, vnořený FieldBuilder a FieldArgumentBuilder.
Mohu vytvořit pole, jehož argument obsahuje směs textu a dalšího pole?
Ano — použijte FieldArgumentBuilder, voláním AddText, AddNode a AddField podle potřeby, a poté jej předáte FieldBuilder.AddArgument.
Jak skutečně vložím vytvořené pole do dokumentu?
Zavolejte BuildAndInsert(refNode), a předáte buď uzel Inline (vloží se před něj), nebo Paragraph (vloží se na jeho konec).
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
FieldBuilder | Vytvoří pole z tokenů kódu pole (argumenty a přepínače) |
FieldBuilder(fieldType) | Konstruktor přijímající FieldType pro vytvoření |
FieldBuilder.AddArgument(argument) | Přidá argument (string, int, double, FieldBuilder nebo FieldArgumentBuilder) |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | Přidá přepínač pole, s hodnotou nebo bez ní |
FieldBuilder.BuildAndInsert(refNode) | Vloží vytvořené pole před uzel Inline nebo na konec Paragraph |
FieldArgumentBuilder | Vytváří složitý argument pole z textu, uzlů a vnořených polí |
FieldArgumentBuilder.AddText(text) | Přidá prostý text do argumentu |
FieldArgumentBuilder.AddNode(node) | Přidá uzel Inline do argumentu |
FieldArgumentBuilder.AddField(fieldBuilder) | Vnoří pole vytvořené FieldBuilder do argumentu |