Mail Merge з регіонами
Ви можете створювати різні області у своєму шаблоні, щоб мати спеціальні області, які ви можете просто заповнити своїми даними. Використовуйте Mail Merge з регіонами, якщо ви хочете вставляти таблиці, рядки з повторюваними даними, щоб ваші документи динамічно розширювалися, вказавши ці області у вашому шаблоні.
Ви можете створювати вкладені (дочірні) області, а також об’єднувати області. Основна перевага використання цього типу полягає в динамічному збільшенні частин всередині документа. Більш детальну інформацію дивіться в наступній статті “вкладені Mail Merge області з областями”.
Як виконати Mail Merge з регіонами
Область Mail Merge - це певна частина документа, що має початкову та кінцеву точки. Обидві точки представлені у вигляді Mail Merge полів з певними іменами “TableStart:XXX” і “TableEnd:XXX”. Весь вміст, включений в область Mail Merge, буде автоматично повторюватися для кожного запису в джерелі даних.
Aspose.Words дозволяє виконувати Mail Merge з регіонами, використовуючи один із методів ExecuteWithRegions, який приймає IMailMergeDataSource спеціальне джерело даних.
Наступний приклад коду показує, як виконати Mail Merge з регіонами з бази даних sqlite за допомогою SQLiteCpp:
Ви можете помітити різницю між документами перед виконанням Mail Merge з регіонами:
І після виконання Mail Merge з регіонами:
Обмеження Mail Merge для регіонів
Є кілька важливих моментів, які необхідно враховувати при виконанні Mail Merge з регіонами:
- Початкова точка TableStart:Orders і кінцева точка TableEnd:Orders повинні знаходитися в одному рядку або комірці. Наприклад, якщо область об’єднання починається в комірці таблиці, то область об’єднання повинна закінчуватися в тому ж рядку, що і перша комірка. Ім’я об’єднуваного поля має збігатися з ім’ям стовпця у вашому DataTable. Якщо ви не вказали зіставлені поля, Mail Merge з регіонами не буде успішним для будь-якого об’єднаного поля, ім’я Якого відрізняється від імені стовпця.
- Aspose.Words для C++ підтримує лише джерела даних на основі IMailMergeDataSource та IMailMergeDataSourceRoot. На відміну від .NET та Java, C++ не має загальноприйнятої міжплатформенності API для роботи з базами даних (як ADODB, ODBC або JDBC). Щоб працювати з певним джерелом даних, вам потрібно реалізувати інтерфейс IMailMergeDataSource або IMailMergeDataSourceRoot.
Якщо одне з цих правил буде порушено, Ви отримаєте несподівані результати або може виникнути виняток.