---
title: "ซ้อนกันMail MergeกับภูมิภาคในJava"
---


ในบางสถานการณ์คุณอาจต้องใช้พื้นที่ที่ซ้อนกันMail Mergeกับพื้นที่ ผสานซ้อนกันเป็นคุณลักษณะที่ช่วยให้คุณสามารถผสานข้อมูลลำดับชั้นจากแหล่งข้อมูลของคุณ มสัมพันธ์ลำดับชั้นอธิบายวิธีที่รายการข้อมูลที่เกี่ยวข้องกับแต่ละอื่นๆ(รายการหนึ่งของข้อมูล.

Aspose.Wordsอนุญาตให้คุณดำเนินการMail Mergeด้วยพื้นที่ที่ซ้อนกัน คุณสามารถใช้คุณลักษณะนี้หากคุณมีแหล่งข้อมูลที่ถูกจัดระเบียบเป็นโครงสร้างเหมือนต้นไม้และคุณต้องการดำเนินการดำเนินการMail Mergeเพื่อเติมเต็มเทมเพลตด้วยข้อมูลลำดับชั้น.

{{% alert color="primary" %}}

ซ้อนกันMail Mergeจะเกี่ยวข้องเฉพาะเมื่อดำเนินการMail Mergeกับพื้นที่เท่านั้น.

{{% /alert %}}

## อะไรคือสิ่งที่ซ้อนกันMail Merge

พื้นที่Mail Mergeถูกเรียกว่าซ้อนกันหากคุณมีพื้นที่Mail Mergeอย่างน้อยสองพื้นที่ขึ้นไปซึ่งพื้นที่หนึ่งอยู่ภายในอีกพื้นที่ โปรดทราบว่าแต่ละภูมิภาคมีข้อมูลจากตารางหนึ่ง.

ตัวอย่างที่พบบ่อยที่สุดของการซ้อนกันMail Mergeคือคำสั่งซื้อที่มีหลายรายการที่คุณจำเป็นต้องเชื่อมโย.

ภาพด้านล่างแสดงสองพื้นที่ที่ซ้อนกันซึ่งพื้นที่*Order*Mail Mergeเป็นระดับบนของพื้นที่*Item*Mail Merge.

<img src="/words/java/nested-mail-merge-with-regions/nested-mail-merge-with-regions-1.png" alt="nested_mail_merge_with_regions_aspose_words_java" style="width:650px"/>

## วิธีการประมวลผลMail Mergeด้วยพื้นที่ที่ซ้อนกัน

ข้อมูลที่จะรวมเป็นแม่แบบสามารถมาจากแหล่งต่างๆส่วนใหญ่ฐานข้อมูลเชิงสัมพันธ์หรือเอกสารXML ในตัวอย่างของเรา,เราจะใช้ไฟล์XMLเพื่อเก็บข้อมูลของเราและโหลดโดยตรงใน**DataSet**.

Aspose.Wordsอนุญาตให้คุณประมวลผลMail Mergeด้วยพื้นที่ที่ซ้อนกันโดยใช้ความสัมพันธ์ของข้อมูลที่ระบุใน**DataSet** เมื่อออบเจกต์**DataSet**โหลดXMLจะใช้สคีมาที่ให้ไว้หรือสรุปจากโครงสร้างของXMLเพื่อทำสิ่งนี้ให้สำเร็จ จากโครงสร้างนี้จะสร้างความสัมพันธ์ระหว่างตารางที่จำเป็น.

รูปภาพด้านล่างแสดงให้เห็นว่าข้อมูลจากตาราง*Order*ส่งผ่านไปยังพื้นที่ผสานที่ซ้อนกันจะเชื่อมโยงกับตาราง*Item*รวมทั้งผลลัพธ์ที่สร้างขึ้นในระหว่างการดำเนินการผสาน.

<img src="/words/java/nested-mail-merge-with-regions/nested-mail-merge-with-regions-2.png" alt="mail_merge_with_nested_regions_aspose_words_java" style="width:650px"/>

ตามที่คุณสามารถดูจากเอกสารที่ส่งออก,ใบสั่งแต่ละใบจากตาราง**Order**ถูกแทรกลงในแม่แบบผสานเข้ากับรายการที่เกี่ยวข้องของคำสั่งทั้งหมดจากตาราง**Item**. คำสั่งต่อไปจะถูกแทรกพร้อมกับรายการของพวกเขาจนกว่าคำสั่งซื้อทั้งหมดและรายการที่ ลำดับของการทำรังMail Mergeกับพื้นที่ในเทมเพลตต้องตรงกับความสัมพันธ์ของข้อมูลระหว่างตาราง.

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างใบแจ้งหนี้โดยใช้พื้นที่ที่ซ้อนกันMail Merge:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e"  "Examples-src-main-java-com-aspose-words-examples-mail_merge-TypesofMailMergeOperations-NestedMailMerge.java" >}}

{{% alert color="primary" %}}

คุณสามารถดาวน์โหลดไฟล์ตัวอย่างของตัวอย่างนี้ได้จาก [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-Java/blob/master/Examples/Data/Mail%20merge%20data%20-%20Customers.xml).

{{% /alert %}}

## วิธีการตั้งค่าความสัมพันธ์ของข้อมูลที่ซ้อนกันMail Mergeกับภูมิภาค

คุณต้องตั้งค่าความสัมพันธ์ข้อมูลทั้งหมดในโครงสร้างหลัก-ย่อยเพื่อดำเนินการ Mail Merge แบบซ้อนกับภูมิภาคอย่างถูกต้อง การข้ามขั้นตอนสำคัญนี้อาจนำไปสู่ความล้มเหลวในการดำเนินการ Mail Merge แบบซ้อนกับภูมิภาค.

เมื่อดึงข้อมูลสำหรับMail Mergeที่ซ้อนกันจากไฟล์XMLโดยใช้วิธีการ**ReadXml**ความสัมพันธ์จะถูกสร้างขึ้นโดยอัตโนมัติตามโครงสร้างของเอกสารXML อย่างไรก็ตามคุณต้องแน่ใจว่าความสัมพันธ์ที่ถูกต้องได้ถูกสร้างขึ้น.

ถ้าMail Mergeไม่ทำงานตามที่คาดไว้คุณอาจต้องปรับโครงสร้างไฟล์XMLหรือสร้างความสัมพันธ์ระหว่างDataTableวัตถุในDataSet.

`DataSet`ที่มีตารางข้อมูลที่เกี่ยวข้องจะใช้วัตถุ**DataRelation**เพื่อเป็นตัวแทนของความสัมพันธ์ของพ่อแม่และลูก.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการสร้าง`DataRelation`ระหว่างตารางของลูกค้าและตารางของคำสั่งโดยใช้วัตถุ`DataRelation`:
{{< highlight java >}}
dataSet.getRelations().add(new DataRelation("OrderToItem", orderTable.getColumns().get("Order_Id"), itemTable.getColumns().get("Order_Id"), false));
{{< /highlight >}}
