Bersarang Mail Merge dengan Wilayah
Dalam beberapa skenario, Anda mungkin perlu menggunakan Mail Merge bersarang dengan wilayah. Penggabungan bersarang adalah fitur yang memungkinkan Anda menggabungkan data hierarki dari sumber data ke dalam templat penggabungan untuk mengisi dokumen Anda dengan mudah. Pada dasarnya, data hierarkis direpresentasikan sebagai sekumpulan item data, dan hubungan hierarkis menggambarkan bagaimana item data terkait satu sama lain (satu item data adalah induk dari item lainnya).
Aspose.Words memungkinkan Anda melakukan operasi Mail Merge dengan wilayah bersarang. Anda dapat menggunakan fitur ini jika Anda memiliki sumber data yang disusun menjadi struktur seperti pohon dan Anda ingin menjalankan operasi Mail Merge untuk mengisi templat dengan data hierarkis.
Apa itu Mail MergeBersarang
Wilayah Mail Merge disebut bersarang jika Anda memiliki dua atau lebih wilayah Mail Merge di mana salah satunya berada di dalam wilayah lainnya dalam bentuk hierarki. Perhatikan bahwa setiap wilayah berisi data dari satu tabel.
Contoh paling umum dari Mail Merge bersarang adalah urutan yang berisi beberapa item di mana Anda perlu menautkan beberapa tabel data dan menyajikan informasi dalam templat.
Gambar di bawah ini menunjukkan dua wilayah bersarang di mana wilayah Order Mail Merge adalah induk dari wilayah Item Mail Merge.
Cara Memproses Mail Merge dengan Wilayah Bersarang
Data yang akan digabungkan ke dalam templat dapat berasal dari berbagai sumber, terutama basis data relasional atau dokumen XML. Dalam contoh kita, kita akan menggunakan file XML untuk menyimpan data kita dan memuatnya langsung ke DataSet.
Aspose.Words memungkinkan Anda memproses Mail Merge dengan wilayah bersarang menggunakan hubungan data yang ditentukan dalam DataSet. Saat objek DataSet memuat XML, objek tersebut menggunakan skema yang disediakan atau menyimpulkannya dari struktur XML itu sendiri untuk mencapainya. Dari struktur ini, ia menciptakan hubungan antar tabel jika diperlukan.
Gambar di bawah ini menunjukkan bagaimana data dari tabel Order yang diteruskan ke wilayah penggabungan bersarang akan ditautkan ke tabel Item, serta keluaran yang dihasilkan selama operasi penggabungan.
Seperti yang dapat Anda lihat dari dokumen keluaran, setiap pesanan dari tabel Order dimasukkan ke dalam templat gabungan dengan semua item terkait pesanan dari tabel Item. Pesanan berikutnya akan disisipkan beserta itemnya hingga semua pesanan dan itemnya terdaftar. Urutan bersarang Mail Merge dengan wilayah dalam templat harus sesuai dengan hubungan data antara tabel di sumber data.
Contoh kode berikut menunjukkan cara membuat faktur menggunakan Mail Merge bersarang dengan wilayah:
Anda dapat mengunduh file contoh contoh ini dari Aspose.Words GitHub.
Anda dapat memeriksa implementasi pengaturan relasi data secara manual dari Aspose.Words Github.
Cara Mengatur Relasi Data dalam Mail Merge Bersarang dengan Wilayah
Anda perlu menyiapkan semua hubungan data dalam struktur induk-anak untuk menjalankan Mail Merge bersarang dengan wilayah dengan benar. Melewatkan langkah penting ini dapat menyebabkan kegagalan dalam menjalankan Mail Merge bersarang dengan wilayah.
Saat mengambil data untuk Mail Merge bersarang dari file XML menggunakan metode ReadXml, hubungan dibuat secara otomatis sesuai dengan struktur dokumen XML. Namun, Anda perlu memastikan bahwa hubungan yang benar telah dibuat.
Jika Mail Merge tidak berfungsi seperti yang diharapkan, maka Anda mungkin perlu merestrukturisasi file XML Anda atau secara eksplisit membuat relasi antara objek DataTable di DataSet.
A DataSet
yang memiliki tabel data terkait akan menggunakan objek DataRelation untuk mewakili hubungan induk-anak di antara tabel.
Contoh kode berikut menunjukkan cara membuat DataRelation
antara tabel pelanggan dan tabel pesanan dengan menggunakan objek DataRelation
:
Cara Membuat Relasi Data dari Sumber Data Khusus
Implementasikan antarmuka IMailMergeDataSource untuk membuat hubungan dalam struktur induk-anak dari sumber data kustom Anda. Gunakan metode GetChildDataSource untuk mengembalikan data turunan yang relevan dari catatan induk saat ini.
Contoh berikut menunjukkan cara membuat relasi data menggunakan GetChildDataSource: