Câmpuri de automatizare a documentelor (IF, COMPARE, MACROBUTTON și altele)

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ă analizezi TrueText/FalseText manual.
  • FieldCompare și FieldIf î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 Field subclase: GetFieldCode(), Update(), Remove(), și Unlink() from Lucrul cu câmpuri se aplică exact în același mod aici.

Probleme comune

ProblemăCauzăRemediere
FieldIf.EvaluateCondition() returnează ErrorOperanzii sau operatorul condiției nu au putut fi evaluați așa cum au fost scrișiVerificaț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 documentConfirmați numele exact al variabilei și că există înainte de a citi Result
Textul afișat FieldGoToButton/FieldMacroButton nu corespunde cu ceea ce arată WordDisplayText a fost citit înainte ca câmpul să fie actualizat sau a fost setat fără un apel Update() corespunzătorApelaț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ă / EnumDescriere:
FieldIfIF câmp; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition()
FieldIfComparisonResultEnum rezultat al FieldIf.EvaluateCondition(): True, False, Error
FieldCompareCOMPARE câmp; LeftExpression, ComparisonOperator, RightExpression
FieldDocVariableDOCVARIABLE câmp; VariableName
FieldGoToButtonGOTOBUTTON câmp; Location, DisplayText
FieldMacroButtonMACROBUTTON câmp; MacroName, DisplayText
FieldPrintPRINT câmp; PrinterInstructions, PostScriptGroup

Vezi și:

 Română