TXFAFormStructure
HPDFXFAFormStructure يوفر تحضيرًا أصليًا وتعيين هويات لحالات النماذج المدعومة بالـ template
تستعير الـ class مستند TXFADocument الخاص بها، وتمتلك رسمها البياني البنيوي ومرشَّحها المنفصلين، ولا تحرر المستند المستعار أبدًا
constructor Create(Document: TXFADocument;
const Limits: TXFADataStructureLimits;
const OnTick: TXFADataStructureTick);
procedure BeginOperation(const OnTick: TXFADataStructureTick);
procedure EndOperation;
function PrepareUnboundModel: TXFANode;
function EnsureInstance(Definition, DataNode: TXFANode): TXFANode;
function PrepareMaterialization(Definition, Instance: TXFANode;
out Aliases: TXFAFormStructureAliases): TXFANode;
function ReplaceInstance(Instance, Prepared: TXFANode): TXFANode;
procedure DiscardPrepared(Node: TXFANode);
property Graph: TXFADataStructure;
نطاق العملية
نادِ BeginOperation قبل العمل البنيوي وEndOperation داخل كتلة finally
الـ callback المقدَّم يُنادى على امتداد التنقل المحدود السقف والنسخ والفحص المسبق للرسم البياني، ويمكنه رفع استثناء لإلغاء العملية
Graph.DetachedRoots تكشف مجموعة الملكية الخاصة بالرسم البياني للمراقبة واستعادة snapshots منسَّقة، وعلى المستدعين عدم تحرير العقد التي ما تزال مملوكة لتلك المجموعة من تلقاء أنفسهم
التحضير وتبنّي
PrepareMaterialization تركِّب مرشَّح نموذج منفصلًا من تعريف template وحالة live اختيارية، عائدةً أزواج مصدر-إلى-مرشَّح في TXFAFormStructureAliases
TXFAFormStructureAlias.Source وTarget مرجعا عقدتان مستعاران لإعادة تعيين الهويات الخارجية قبل تحرير الحالة السابقة
ReplaceInstance تتبنّى المرشَّح المحضَّر وتعيد الحالة السابقة كعقدة منفصلة مملوكة للرسم البياني
أعِد توجيه المراجع التابعة قبل مناداة DiscardPrepared على الحالة السابقة المعادة
DiscardPrepared تحرر مرشَّحًا منفصلًا مملوكًا للرسم البياني نفسه ولا تزيل حالة live مرفقة
الحالات الابتدائية والمتناثرة
PrepareUnboundModel تعيد نموذج نموذج منفصلًا لدمج فارغ، محافطةً على محتوى template المؤلَّف وموسِّعةً occurrences الـ subform المدعومة إلى عقد native مستقلة
EnsureInstance تعيد عقدة نموذج live قائمة أو تبني مسار الحالة المتناثرة المطلوب لتعريف template وسياق بياناتها الحي
EnsureInstance قد تبدِّل عدة عقد حية، لذا فإن rollback العمليات المركبة من مسؤولية معاملة مستند المستدعي المحيطة
TXFAWidgetRuntime يوفر تلك المعاملة لأحداث script العامة، بما يشمل استعادة هويات المستند الأصلي والمنفصل
الدوال المساعدة
| الدالة | الغرض |
|---|---|
HPDFXFAEmptyMergeCount | تتحقق من إعلان occurrence وتعيد عدد الدمج الفارغ لها، مستخدمةً القيمة الابتدائية الصريحة أو الحد الأدنى |
HPDFXFAIsMaterializedFormNode | تفحص علامة التجسيد المؤهلة بـ namespace ضمن ميزانية تنقل صريحة |
HPDFXFAResolveMaterializedDefinition | تحلّ عقدة النموذج الفعالة لتعريف وسياق بيانات، مبيِّنةً هل النموذج المجسَّد هو المرجع |
HPDFXFAResolveActualFormScope | تحلّ نطاق البيانات الحي لحالة نموذج مكررة فعلية دون تكرار إعلان template الخاص بها مرة أخرى |
العلامة المحفوظة تستخدم urn:hotpdf:xfa:form-structure:1 ببادئة آمنة من التصادم، بينما تستخدم عقد النماذج الأصلية namespace نماذج XFA
على المستدعين الأصليين المستقلين الاحتفاظ بالمستند طوال عمر الـ class وتوفير rollback حول عمليات الرسم البياني المركبة عندما يجب أن يستعيد إلغاء أو فشل آخر خطواتٍ سابقةً نجحت