آشیانه 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: