---
title: "آشیانه Mail Merge با مناطق در C++"
---

در برخی از سناریوها، ممکن است لازم باشد از Mail Merge آشیانه ای با مناطق استفاده کنید. ادغام آشیانه ای یک ویژگی است که به شما اجازه می دهد داده های سلسله مراتبی را از منبع داده خود به قالب ادغام خود ادغام کنید تا به راحتی سند خود را پر کنید. اساسا، داده های سلسله مراتبی به عنوان مجموعه ای از آیتم های داده نشان داده می شوند و روابط سلسله مراتبی توضیح می دهد که چگونه آیتم های داده با یکدیگر مرتبط هستند (یک آیتم داده والدین یکی دیگر است).

Aspose.Words شما را قادر می سازد تا عملیات Mail Merge را با مناطق آشیانه ای انجام دهید. شما می توانید از این ویژگی استفاده کنید اگر یک منبع داده دارید که به یک ساختار درخت مانند سازماندهی شده است و می خواهید یک عملیات Mail Merge را برای پر کردن یک قالب با داده های سلسله مراتبی اجرا کنید.

```

Nested Mail Merge فقط در هنگام انجام یک Mail Merge با مناطق مرتبط است.

```

## آشیانه ای چیست Mail Merge

منطقه Mail Merge اگر دو یا چند منطقه Mail Merge داشته باشید که یکی از آنها در داخل دیگری به شکل سلسله مراتبی باشد، آشیانه نامیده می شود. توجه داشته باشید که هر منطقه حاوی داده های یک جدول است.

رایج ترین مثال از یک Mail Merge آشیانه ای یک سفارش است که شامل چند مورد است که در آن شما باید بسیاری از جداول داده را به هم پیوند دهید و اطلاعات را در یک قالب ارائه دهید.

تصویر زیر دو منطقه آشیانه ای را نشان می دهد که در آن منطقه *Order* Mail Merge مادر منطقه *Item* Mail Merge است.

![nested_mail_merge_with_regions](nested-mail-merge-with-regions-1.png)

## نحوه پردازش Mail Merge با مناطق آشیانه ای

داده هایی که باید در یک قالب ادغام شوند می توانند از منابع مختلف، عمدتا پایگاه داده های رابطه ای یا اسناد XML باشند. در مثال ما، ما می خواهیم از یک [SQLite](https://www.sqlite.org/index.html) پایگاه داده برای ذخیره داده های ما و بارگذاری آن با پیاده سازی منبع داده سفارشی.

تصویر زیر نشان می دهد که چگونه داده های جدول *Order* که به مناطق ادغام شده منتقل شده است به جدول *Item* و همچنین خروجی تولید شده در طول عملیات ادغام مرتبط خواهد بود.

![mail_merge_with_nested_regions](nested-mail-merge-with-regions-2.png)

همانطور که از سند خروجی می بینید، هر سفارش از جدول **Order** در قالب ادغام با تمام موارد مرتبط با سفارش از جدول **Item** قرار داده شده است. سفارش بعدی همراه با اقلام آنها قرار داده خواهد شد تا زمانی که تمام سفارشات و اقلام ذکر شده باشد. ترتیب لانه سازی Mail Merge با مناطق در قالب باید با روابط داده بین جداول در منبع داده مطابقت داشته باشد.

## چگونه روابط داده را از یک منبع داده سفارشی ایجاد کنیم

رابط [IMailMergeDataSource](https://reference.aspose.com/words/cpp/aspose.words.mailmerging/imailmergedatasource/) را برای ایجاد روابط در ساختار والدین و فرزند منبع داده سفارشی خود پیاده سازی کنید. از روش [GetChildDataSource](https://reference.aspose.com/words/cpp/aspose.words.mailmerging/imailmergedatasource/getchilddatasource/) برای بازگرداندن داده های مربوط به فرزند یک پرونده والدین فعلی استفاده کنید.

مثال کد زیر نشان می دهد که چگونه یک فاکتور را با استفاده از Mail Merge با مناطق از [SQLite](https://www.sqlite.org/index.html) پایگاه داده با [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp):

{{< gist "aspose-words-gists" "3435df005db9907ec9ba3a6b777ae6fb" "nested-mail-merge.h" >}}
