حقول أتمتة المستند (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 لوصف المقارنة، لكنه يُنتج نتيجة بنمط بولياني بدلاً من التبديل بين بديلين نصيين.
متغيّرات المستند باستخدام 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 ملخص
| فئة / تعداد | وصف |
|---|---|
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 |