Câmpuri de automatizare a documentelor (IF, COMPARE, MACROBUTTON și altele)
Câmpuri de automatizare a documentelor (IF, COMPARE și altele)
Acest ghid arată cum să lucraţi cu familia de câmpuri de automatizare a documentelor Word în Aspose.Words FOSS pentru .NET – câmpuri care generează text condițional, stochează variabile la nivel de document și leagă macrocomenzi, navigare și comportament de tipărire, în loc să afișeze pur și simplu o valoare calculată. Fiecare este un Field subclasă în Aspose.Words.Fields spațiu de nume: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, și FieldPrint. Toate acestea moștenesc nucleul Field membrilor descriși în Lucrul cu câmpuri – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, și Format – această pagină acoperă ce este specific fiecăruia.
Text condițional cu FieldIf
FieldIf implementează IF câmpul. LeftExpression, ComparisonOperator, și RightExpression descrie condiția – aceeași formă în trei părți utilizată de IComparisonExpressionEvaluator (vezi Lucrul cu câmpuri) – și TrueText / FalseText conțin cele două rezultate posibile. Apel EvaluateCondition() pentru a evalua condiția direct; returnează un FieldIfComparisonResult valoare: True, False, sau Error.
Compararea valorilor cu FieldCompare
FieldCompare implementează câmpul COMPARE. Ca și FieldIf, expune LeftExpression, ComparisonOperator și RightExpression pentru a descrie comparația, dar produce un rezultat de tip boolean în loc să alterneze între două alternative de text.
Variabile de document cu FieldDocVariable
FieldDocVariable implementează câmpul DOCVARIABLE, citind o variabilă denumită la nivelul documentului prin proprietatea sa VariableName.
Butoane: FieldGoToButton și FieldMacroButton
FieldGoToButton implementează câmpul GOTOBUTTON: Location denumește semnul de carte, pagina sau altă destinație la care se sare, iar DisplayText este eticheta afișată în document. FieldMacroButton implementează câmpul MACROBUTTON: MacroName denumește macrocomanda de rulat și DisplayText este eticheta. Atât FieldIf, cât și FieldMacroButton implementează în plus IMergeFieldSurrogate, interfața pe care câmpurile conștiente de îmbinarea de corespondență din Word o folosesc pentru a se marca ca conținut substituibil.
Instrucțiuni de tipărire cu FieldPrint
FieldPrint implementează câmpul PRINT: PrinterInstructions și PostScriptGroup conțin instrucțiuni specifice imprimantei încorporate direct în document.
Sfaturi și cele mai bune practici
- Folosește
FieldIf.EvaluateCondition()pentru a citi rezultatul unei condiții (FieldIfComparisonResult) fără a fi nevoie să analizeziTrueText/FalseTextmanual. FieldCompareșiFieldIfîmpărtășesc aceeași structurăLeftExpression/ComparisonOperator/RightExpression— codul care construiește sau inspectează o expresie de comparație poate fi reutilizat pentru ambele tipuri de câmpuri.- Reține că acestea sunt toate
Fieldsubclase:GetFieldCode(),Update(),Remove(), șiUnlink()from Lucrul cu câmpuri se aplică exact în același mod aici.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
FieldIf.EvaluateCondition() returnează Error | Operanzii sau operatorul condiției nu au putut fi evaluați așa cum au fost scriși | Verificați LeftExpression, ComparisonOperator și RightExpression pentru valori valide |
Rezultatul FieldDocVariable nu reflectă o valoare de variabilă așteptată | VariableName nu corespunde unui nume de variabilă prezent în document | Confirmați numele exact al variabilei și că există înainte de a citi Result |
Textul afișat FieldGoToButton/FieldMacroButton nu corespunde cu ceea ce arată Word | DisplayText a fost citit înainte ca câmpul să fie actualizat sau a fost setat fără un apel Update() corespunzător | Apelați Update() pe câmp, sau citiți din nou DisplayText după orice modificare a acestuia |
FAQ
Cum citesc rezultatul unui câmp IF condițional?
Apelați FieldIf.EvaluateCondition() pentru FieldIfComparisonResult brut, sau citiți TrueText / FalseText pentru cele două alternative de text literal între care câmpul comută.
Care este diferența dintre FieldIf și FieldCompare?
FieldIf (câmpul IF) comută între TrueText și FalseText în funcție de condiția sa. FieldCompare (câmpul COMPARE) are aceeași structură de comparație, dar produce un rezultat de tip boolean în loc de text alternativ.
Cum citesc numele unei variabile de document dintr-un câmp DOCVARIABLE?
Citește FieldDocVariable.VariableName.
Cum găsesc destinația unui câmp GOTOBUTTON?
Citește FieldGoToButton.Location; DisplayText furnizează eticheta afișată pentru buton în document.
Rezumat API Reference
| Clasă / Enum | Descriere: |
|---|---|
FieldIf | IF câmp; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Enum rezultat al FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE câmp; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE câmp; VariableName |
FieldGoToButton | GOTOBUTTON câmp; Location, DisplayText |
FieldMacroButton | MACROBUTTON câmp; MacroName, DisplayText |
FieldPrint | PRINT câmp; PrinterInstructions, PostScriptGroup |