Dokumentumautomatizálási mezők (IF, COMPARE, MACROBUTTON és továbbiak)
Dokumentumautomatizálási mezők (IF, COMPARE és egyebek)
Ez az útmutató bemutatja, hogyan kell dolgozni a Word dokumentum-automatizálási mezőcsaládjával Aspose.Words FOSS a .NET – olyan mezők, amelyek feltételes szöveget vezérelnek, dokumentum-szintű változókat tárolnak, és makrókat, navigációt, valamint nyomtatási viselkedést kötnek össze, ahelyett, hogy egyszerűen egy számított értéket jelenítenének meg. Mindegyik egy Field aldosztály a Aspose.Words.Fields névtér: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, és FieldPrint. Mindegyik örökli az alap Field tagok, amelyeket leírunk Mezőkkel való munka – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, és Format – ez az oldal lefedi, hogy mi specifikus minden egyesnél.
Feltételes szöveg a FieldIf használatával
FieldIf megvalósítja a IF mező. LeftExpression, ComparisonOperator, és RightExpression leírja a feltételt – ugyanaz a háromrészes forma, amit használ IComparisonExpressionEvaluator (lásd Mezőkkel való munka) – és TrueText / FalseText tartalmazza a két lehetséges eredményt. Hívja EvaluateCondition() a feltétel közvetlen kiértékeléséhez; egy FieldIfComparisonResult érték: True, False, vagy Error.
Értékek összehasonlítása a FieldCompare használatával
FieldCompare implementálja a COMPARE mezőt. A FieldIf-hez hasonlóan LeftExpression, ComparisonOperator és RightExpression segítségével írja le az összehasonlítást, de logikai (boolean) típusú eredményt ad, ahelyett, hogy két szöveges alternatíva között váltana.
Dokumentumváltozók a FieldDocVariable használatával
FieldDocVariable megvalósítja a DOCVARIABLE mezőt, egy névvel ellátott dokumentumszintű változót olvas be a VariableName tulajdonságán keresztül.
Gombok: FieldGoToButton és FieldMacroButton
FieldGoToButton megvalósítja a GOTOBUTTON mezőt: a Location adja meg a könyvjelzőt, oldalt vagy egyéb célt, amelyre ugrani kell, a DisplayText pedig a dokumentumban megjelenő címke. FieldMacroButton megvalósítja a MACROBUTTON mezőt: a MacroName adja meg a futtatandó makrót, a DisplayText pedig a címke. Mind a FieldIf, mind a FieldMacroButton továbbiakban megvalósítja a IMergeFieldSurrogate interfészt, amelyet a Word mail-merge-aware mezői használnak, hogy magukat helyettesíthető tartalomként jelöljék.
Nyomtatási utasítások a(z) FieldPrint segítségével
FieldPrint megvalósítja a PRINT mezőt: a PrinterInstructions és a PostScriptGroup a dokumentumba közvetlenül beágyazott nyomtató-specifikus utasításokat tartalmazzák.
Tippek és bevált gyakorlatok
- Használja a(z)
FieldIf.EvaluateCondition()elemet a feltétel eredményének (FieldIfComparisonResult) kiolvasásához anélkül, hogy saját maga kellene feldolgozza a(z)TrueText/FalseTextértékét. FieldCompareésFieldIfugyanazt aLeftExpression/ComparisonOperator/RightExpressionalakot osztják meg — egy összehasonlító kifejezést felépítő vagy vizsgáló kód újrahasználható mindkét mezőtípusnál.- Ne feledje, ezek mind
Fieldaldosztályok:GetFieldCode(),Update(),Remove(), ésUnlink()from Mezőkkel való munka pontosan ugyanúgy alkalmazandó itt.
Gyakori problémák
| Hiba | Ok | Javítás |
|---|---|---|
FieldIf.EvaluateCondition() visszaadja Error | A feltétel operandusait vagy operátorát nem lehet kiértékelni a leírt módon | Ellenőrizze, hogy LeftExpression, ComparisonOperator és RightExpression érvényes értékek-e |
FieldDocVariable eredmény nem tükrözi a várt változó értékét | VariableName nem egyezik a dokumentumban ténylegesen jelen lévő változónévvel | Ellenőrizze a pontos változónevet, és hogy létezik-e, mielőtt beolvasná a(z) Result |
FieldGoToButton/FieldMacroButton megjelenő szöveg nem egyezik azzal, amit a Word mutat | DisplayText akkor lett beolvasva, amikor a mező még nem frissült, vagy anélkül lett beállítva, hogy megfelelő Update() hívás történt volna | Hívja meg a(z) Update() függvényt a mezőn, vagy olvassa újra a(z) DisplayText értéket minden változtatás után |
FAQ
Hogyan olvashatom el egy feltételes IF mező eredményét?
Hívja a FieldIf.EvaluateCondition()-t a nyers FieldIfComparisonResult lekéréséhez, vagy olvassa a TrueText / FalseText értékeket a mező által váltogatott két szó szerinti szöveges alternatíva közül.
Mi a különbség a FieldIf és a FieldCompare között?
FieldIf (a IF mező) a feltétel alapján TrueText és FalseText között vált. FieldCompare (a COMPARE mező) ugyanazt az összehasonlítási formát használja, de alternatív szöveg helyett logikai (boolean) típusú eredményt ad.
Hogyan olvashatom el egy dokumentum változó nevét egy DOCVARIABLE mezőből?
Olvasd el FieldDocVariable.VariableName.
Hogyan találom meg egy GOTOBUTTON mező célját?
Olvasd el FieldGoToButton.Location; DisplayText adja meg a dokumentumban a gombon megjelenő címkét.
API Reference összefoglaló
| Osztály / Enumeráció | Leírás |
|---|---|
FieldIf | IF mező; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Enum eredménye FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE mező; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE mező; VariableName |
FieldGoToButton | GOTOBUTTON mező; Location, DisplayText |
FieldMacroButton | MACROBUTTON mező; MacroName, DisplayText |
FieldPrint | PRINT mező; PrinterInstructions, PostScriptGroup |