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.
Если одно из этих правил будет нарушено, вы получите неожиданные результаты или может возникнуть исключение.