Πεδία Αυτοματοποίησης Εγγράφων (IF, COMPARE, MACROBUTTON, και Περισσότερα)
Πεδία Αυτοματοποίησης Εγγράφου (IF, COMPARE, και Άλλα)
Αυτός ο οδηγός δείχνει πώς να εργαστείτε με την οικογένεια πεδίων αυτοματοποίησης εγγράφων του Word στο Aspose.Words FOSS για .NET – πεδία που καθοδηγούν υπό όρους κείμενο, αποθηκεύουν μεταβλητές σε επίπεδο εγγράφου και συνδέουν μακροεντολές, πλοήγηση και συμπεριφορά εκτύπωσης, αντί να εμφανίζουν απλώς μια υπολογισμένη τιμή. Κάθε ένα είναι ένα Field υποκατηγορία στο Aspose.Words.Fields χώρο ονομάτων: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, και FieldPrint. Όλα αυτά κληρονομούν τον πυρήνα Field μέλη που περιγράφονται στο Εργασία με Πεδία – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, και Format – αυτή η σελίδα καλύπτει τι είναι συγκεκριμένο για το καθένα.
Κειμένο υπό όρους με FieldIf
FieldIf υλοποιεί το IF πεδίο. LeftExpression, ComparisonOperator, και RightExpression περιγράφει την κατάσταση – το ίδιο τριμερές σχήμα που χρησιμοποιείται από IComparisonExpressionEvaluator (δείτε Εργασία με Πεδία) – και TrueText / FalseText κρατήστε τα δύο πιθανά αποτελέσματα. Καλέστε EvaluateCondition() για να αξιολογήσετε την κατάσταση απευθείας; επιστρέφει ένα FieldIfComparisonResult τιμή: True, False, ή Error.
Σύγκριση Τιμών με FieldCompare
FieldCompare υλοποιεί το πεδίο COMPARE. Όπως το FieldIf, εκθέτει τα LeftExpression, ComparisonOperator και RightExpression για να περιγράψει τη σύγκριση, αλλά παράγει αποτέλεσμα τύπου boolean αντί να εναλλάσσει μεταξύ δύο εναλλακτικών κειμένων.
Μεταβλητές Εγγράφου με FieldDocVariable
FieldDocVariable υλοποιεί το πεδίο DOCVARIABLE, διαβάζοντας μια ονομασμένη μεταβλητή περιορισμένη σε έγγραφο μέσω της ιδιότητας VariableName.
Κουμπιά: FieldGoToButton και FieldMacroButton
FieldGoToButton υλοποιεί το πεδίο GOTOBUTTON: το Location ονομάζει το σελιδοδείκτη, τη σελίδα ή άλλη προορισμό προς άλμα, και το DisplayText είναι η ετικέτα που εμφανίζεται στο έγγραφο. FieldMacroButton υλοποιεί το πεδίο MACROBUTTON: το MacroName ονομάζει τη μακροεντολή που θα εκτελεστεί και το DisplayText είναι η ετικέτα. Και τα FieldIf και FieldMacroButton υλοποιούν επιπλέον το IMergeFieldSurrogate, τη διεπαφή που τα πεδία του Word που υποστηρίζουν συγχώνευση αλληλογραφίας χρησιμοποιούν για να σημειώσουν ότι είναι αντικαταστάσιο περιεχόμενο.
Οδηγίες εκτύπωσης με FieldPrint
FieldPrint υλοποιεί το πεδίο PRINT: τα PrinterInstructions και PostScriptGroup περιέχουν οδηγίες ειδικές για τον εκτυπωτή ενσωματωμένες άμεσα στο έγγραφο.
Συμβουλές και βέλτιστες πρακτικές
- Χρησιμοποιήστε το
FieldIf.EvaluateCondition()για να διαβάσετε το αποτέλεσμα μιας συνθήκης (FieldIfComparisonResult) χωρίς να χρειάζεται να αναλύσετε μόνοι σας ταTrueText/FalseText. FieldCompareκαιFieldIfμοιράζονται την ίδια μορφήLeftExpression/ComparisonOperator/RightExpression– ο κώδικας που δημιουργεί ή εξετάζει μια έκφραση σύγκρισης μπορεί να επαναχρησιμοποιηθεί και στους δύο τύπους πεδίων.- Θυμηθείτε ότι όλα αυτά είναι
Fieldυποκλάσεις:GetFieldCode(),Update(),Remove(), καιUnlink()from Εργασία με Πεδία εφαρμόζεται ακριβώς με τον ίδιο τρόπο εδώ.
Συνηθισμένα Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
FieldIf.EvaluateCondition() επιστρέφει Error | Οι τελεστές ή ο τελεστής της συνθήκης δεν μπορούσαν να αξιολογηθούν όπως γράφτηκε | Ελέγξτε το LeftExpression, το ComparisonOperator και το RightExpression για έγκυρες τιμές |
Το αποτέλεσμα του FieldDocVariable δεν αντανακλά την αναμενόμενη τιμή μεταβλητής | Το VariableName δεν ταιριάζει με κάποιο όνομα μεταβλητής που υπάρχει πραγματικά στο έγγραφο | Επιβεβαιώστε το ακριβές όνομα μεταβλητής και ότι υπάρχει πριν την ανάγνωση του Result |
Το κείμενο εμφάνισης του FieldGoToButton/FieldMacroButton δεν ταιριάζει με αυτό που εμφανίζει το Word | Το DisplayText διαβάστηκε πριν ενημερωθεί το πεδίο, ή ορίστηκε χωρίς την αντίστοιχη κλήση του Update() | Καλέστε το Update() στο πεδίο, ή ξαναδιαβάστε το DisplayText μετά από οποιαδήποτε αλλαγή σε αυτό |
FAQ
Πώς μπορώ να διαβάσω το αποτέλεσμα ενός υπό συνθήκη πεδίου IF;
Καλέστε το FieldIf.EvaluateCondition() για το ακατέργαστο FieldIfComparisonResult, ή διαβάστε το TrueText / FalseText για τις δύο κυριολεκτικές εναλλακτικές κειμένου μεταξύ των οποίων εναλλάσσεται το πεδίο.
Ποια είναι η διαφορά μεταξύ του FieldIf και του FieldCompare;
FieldIf (το πεδίο IF) εναλλάσσεται μεταξύ TrueText και FalseText βάσει της συνθήκης του. FieldCompare (το πεδίο COMPARE) μοιράζεται το ίδιο σχήμα σύγκρισης αλλά παράγει αποτέλεσμα τύπου boolean αντί για εναλλακτικό κείμενο.
Πώς μπορώ να διαβάσω το όνομα μιας μεταβλητής εγγράφου από ένα πεδίο DOCVARIABLE;
Διαβάστε FieldDocVariable.VariableName.
Πώς μπορώ να βρω τον προορισμό ενός πεδίου GOTOBUTTON;
Διαβάστε FieldGoToButton.Location; DisplayText παρέχει την ετικέτα που εμφανίζεται για το κουμπί στο έγγραφο.
API Reference Περίληψη
| Κλάση / Enum | Περιγραφή |
|---|---|
FieldIf | IF πεδίο; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Αποτέλεσμα Enum του FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | COMPARE πεδίο; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE πεδίο; VariableName |
FieldGoToButton | GOTOBUTTON field; Location, DisplayText |
FieldMacroButton | MACROBUTTON field; MacroName, DisplayText |
FieldPrint | PRINT field; PrinterInstructions, PostScriptGroup |