XFA Live Child Collections
أحداث JavaScript وFormCalc يمكنها فحص عقد الأبناء الحالية لعقدة نموذج أو خاصية عبر خاصية nodes للقراءة فقط لديها
const field = xfa.resolveNode("row[1].amount");
const children = field.font.nodes;
const snapshot = children.clone();
field.font.fill.color.value = "192,48,96";
const fill = children.item(0);
قراءة الأبناء الحاليين
| العضو | السلوك |
|---|---|
length | عدد عقد الأبناء الحالي |
item(index) | الابن الحالي عند ذلك الفهرس ذي الأساس الصفري، أو null لفهرس سالب أو غير صحيح أو خارج النطاق |
namedItem(name) | أول ابن حالي بذلك الاسم النصي، أو null عندما لا يطابق أي ابن |
nodes[index] | نفس العقدة الحالية item(index) |
for...of | قراءة عقد الأبناء بترتيبها الحالي |
clone() | إنشاء قائمة استعلام مستقلة تشير إلى الأبناء الحاليين |
المجموعة تحل مالكها عبر الرسم البياني الحالي للحدث عند كل قراءة، بما يشمل مجموعة محفوظة بكائن سكربت عبر الأحداث
المجموعات القائمة تعكس إضافات وإزالات النسخ المتكررة وإنشاء الخصائص الضمني؛ والنسخ المتكررة المنفصلة تحفظ أبناء خصائص وقيمًا منفصلة
مجموعة محفوظة أُزيل مالكها تثير خطأ بدلًا من التوجيه إلى نسخة ناجية أو بديلة
وصول FormCalc
FormCalc يتعرف nodes بوصفها خاصية مجموعة أبناء على عقد النماذج والخصائص وData DOM
if (xfa.record.nodes.length >= 2) then
xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif
سلاسل الأعضاء المباشرة length وitem(index) وnamedItem(name) وclone() تستخدم العقد الأصلية الحالية وحدود المجموعات نفسها كـ JavaScript
مجموعات أبناء النماذج والخصائص وData DOM تدعم قراءات nodes[index] المباشرة في JavaScript وFormCalc معًا
فهارس المجموعات ذات أساس صفري؛ وfor...of تبقى صياغة JavaScript
الكتابات عبر مرجع مجموعة في FormCalc تحدّث قيمة البيانات المرتبطة الفعلية وتحفظ عزل النسخ المتكررة؛ والقيم المُرسَلة تنجو من حفظ XDP وإعادة تحميل runtime وتوليد مظاهر PDF الأصلية
فهارس Data DOM العددية
const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";
مفاتيح الأعداد الصحيحة غير السالبة المقننة مثل "0" و"1" تحل ابن Data DOM الحالي وتعيد null خارج المجموعة؛ والمفاتيح غير المقننة مثل "01" و"-0" و"1.0" لا توكّز مدخلات عددية
index in nodes في JavaScript تفحص عدد الأبناء الحالي، والإسناد أو الحذف أو إعادة التعريف المباشر لمدخل عددي مقنّن يثير TypeError
قيود المدخلات العددية نفسها تسري داخل دالة كائن سكربت تحفظ المجموعة بحالة معجمية، وكذلك عندما يقرأ حدث آخر مجموعة تعيدها تلك الدالة
استخدم أساليب Data DOM البنيوية القائمة لإعادة ترتيب الأبناء أو إزالتهم؛ والمجموعة المحفوظة بكائن سكربت تقرأ الرسم البياني الحالي للحدث بعد كل تعديل مُرسَل وبعد التراجع
الاستنساخ المستقل
قائمة أبناء مستنسخة تستخدم التخزين المستقل الموصوف في مجموعات عقد استعلام XFA؛ وأساليبها append وinsert وremove تغيّر ذلك التخزين المستقل
كتابة عقدة مشار إليها بأي من القائمتين تغيّر العقدة الأصلية الفعلية، والقيم المُرسَلة وتجاوزات الخصائص تستمر عبر XDP محفوظ وتوليد مظاهر PDF الأصلية
مجموعات أبناء Data DOM تزوّد أيضًا clone() بتخزين مدخلات مستقل؛ وأساليبها البنيوية append وinsert وremove القائمة تواصل تحويل شجرة البيانات الأصلية
المعاملات والحدود
كائنات المجموعات الحية والاستنساخات المستقلة تتشارك حدود تخصيص مجموعات الحدث وفحوص العمليات والموعد النهائي للمعاملة
خطأ حدث غير ملتقط أو فشل ميزانية يستعيد القيم الأصلية والنسخ المتكررة وحالة السكربت المحفوظة والتخزين المستقل للقوائم وحالة السجل معًا
مجموعات النماذج والخصائص الحية للقراءة فقط؛ والإسناد أو الحذف أو إعادة تعريف خاصية أو تغييرات النموذج الأولي أو منع الامتدادات المباشرة تثير خطأ
مجموعات Data DOM ترفض الكتابة والحذف وإعادة تعريف المدخلات العددية المقننة مع حفظ أساليبها البنيوية المسنّاة القائمة وسلوك خصائصها غير العددية العادي
التغطية
هذه الواجهة تكشف مجموعات أبناء النماذج والخصائص الحالية واستنساخات قوائم الأبناء المستقلة
إنشاء عقد القالب/النموذج العام والاستنساخ التكراري للعقد وإدخال وإزالة أشجار الأبناء وارتباطات أصناف عقد إضافية تبقى عملًا منفصلًا