שדות אוטומציה של מסמך (IF, COMPARE, MACROBUTTON, ועוד)
שדות אוטומציה של מסמכים (IF, COMPARE, ועוד)
מדריך זה מציג כיצד לעבוד עם משפחת השדות של האוטומציה במסמכי Word ב Aspose.Words קוד פתוח חופשי עבור .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 לתיאור ההשוואה, אך מחזיר תוצאה בסגנון בוליאני במקום לעבור בין שתי חלופות טקסט.
משתני מסמך עם 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) חולק את אותה צורת השוואה אך מפיק תוצאה בסגנון בוליאני במקום טקסט חלופי.
איך אני קורא את שם משתנה המסמך משדה 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 שדה; Location, DisplayText |
FieldMacroButton | MACROBUTTON שדה; MacroName, DisplayText |
FieldPrint | PRINT שדה; PrinterInstructions, PostScriptGroup |