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_with_regions_template

И после выполнения mail merge с регионами:

mail_merge_with_regions_execute

Ограничения 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.

Если одно из этих правил будет нарушено, вы получите неожиданные результаты или может возникнуть исключение.