متداخلة Mail Merge مع المناطق
في بعض السيناريوهات، قد تحتاج إلى استخدام Mail Merge المتداخلة مع المناطق. الدمج المتداخل هو ميزة تسمح لك بدمج البيانات الهرمية من مصدر البيانات في قالب الدمج الخاص بك لملء المستند بسهولة. في الأساس، يتم تمثيل البيانات الهرمية كمجموعة من عناصر البيانات، وتصف العلاقات الهرمية كيفية ارتباط عناصر البيانات ببعضها البعض (عنصر واحد من البيانات هو أصل عنصر آخر).
Aspose.Words تمكنك من تنفيذ عملية Mail Merge مع المناطق المتداخلة. يمكنك استخدام هذه الميزة إذا كان لديك مصدر بيانات منظم في بنية تشبه الشجرة وتريد تنفيذ عملية Mail Merge لملء قالب ببيانات هرمية.
ما هو المتداخلة Mail Merge
تسمى منطقة Mail Merge متداخلة إذا كان لديك منطقتان أو أكثر Mail Merge حيث توجد إحداهما داخل الأخرى في شكل هرمي. لاحظ أن كل منطقة تحتوي على بيانات من جدول واحد.
المثال الأكثر شيوعا للتداخل Mail Merge هو ترتيب يحتوي على بعض العناصر حيث تحتاج إلى ربط العديد من جداول البيانات وتقديم المعلومات في قالب.
توضح الصورة أدناه منطقتين متداخلتين حيث تكون منطقة Order Mail Merge هي أصل منطقة Item mail merge.
كيفية معالجة Mail Merge مع المناطق المتداخلة
يمكن أن تأتي البيانات المراد دمجها في قالب من مصادر مختلفة، بشكل أساسي قواعد البيانات العلائقية أو XML مستندات. في مثالنا، نحن ذاهبون إلى استخدام SQLite قاعدة بيانات لتخزين البيانات لدينا وتحميله مع العرف تنفيذ مصدر البيانات.
توضح الصورة أدناه كيفية ربط البيانات من جدول Order الذي تم تمريره إلى مناطق الدمج المتداخلة بجدول Item، بالإضافة إلى المخرجات التي تم إنشاؤها أثناء عملية الدمج.
كما ترى من مستند الإخراج، يتم إدراج كل طلب من جدول Order في قالب الدمج مع جميع العناصر ذات الصلة بالترتيب من جدول Item. سيتم إدراج الطلب التالي مع العناصر الخاصة بهم حتى يتم سرد جميع الطلبات والعناصر. يجب أن يتطابق ترتيب التداخل Mail Merge مع المناطق في القالب مع علاقات البيانات بين الجداول في مصدر البيانات.
كيفية إنشاء علاقات البيانات من مصدر بيانات مخصص
قم بتنفيذ واجهة IMailMergeDataSource لإنشاء علاقات في بنية الوالدين والطفل لمصدر البيانات المخصص. استخدم طريقة GetChildDataSource لإرجاع البيانات الفرعية ذات الصلة لسجل الأصل الحالي.
يوضح مثال التعليمات البرمجية التالية كيفية إنشاء فاتورة باستخدام متداخلة Mail Merge مع مناطق من SQLite قاعدة بيانات مع SQLiteCpp: