Mail Merge z regionami
Możesz tworzyć różne regiony w szablonie, aby mieć specjalne obszary, które możesz po prostu wypełnić swoimi danymi. Użyj Mail Merge z regionami, jeśli chcesz wstawić tabele, wiersze z powtarzającymi się danymi, aby dokumenty dynamicznie rosły, określając te regiony w szablonie.
Możesz tworzyć zagnieżdżone (podrzędne) regiony, a także scalać regiony. Główną zaletą korzystania z tego typu jest dynamiczne zwiększanie części wewnątrz dokumentu. Zobacz więcej szczegółów w następnym artykule “zagnieżdżone Mail Merge z regionami”.
Jak wykonać Mail Merge z regionami
Region Mail Merge to określona część dokumentu, która ma punkt początkowy i punkt końcowy. Oba punkty są reprezentowane jako Mail Merge pola o określonych nazwach “TableStart:XXX” i “TableEnd:XXX”. Cała zawartość zawarta w regionie Mail Merge Zostanie Automatycznie powtórzona dla każdego rekordu w źródle danych.
Aspose.Words umożliwia wykonywanie Mail Merge z regionami przy użyciu jednej z metod ExecuteWithRegions, które akceptują IMailMergeDataSource niestandardowe źródło danych.
Poniższy przykład kodu pokazuje, jak wykonać Mail Merge z regionami z bazy danych sqlite za pomocą SQLiteCpp:
Możesz zauważyć różnicę między dokumentem przed wykonaniem Mail Merge z regionami:
I po wykonaniu Mail Merge z regionami:
Ograniczenia Mail Merge z regionami
Jest kilka ważnych punktów, które należy wziąć pod uwagę podczas wykonywania Mail Merge z regionami:
- Punkt początkowy TableStart:Orders i punkt końcowy TableEnd:Orders muszą znajdować się w tym samym wierszu lub komórce. Na przykład, jeśli rozpoczynasz region scalania w komórce tabeli, musisz zakończyć region scalania w tym samym wierszu, co pierwsza komórka. Nazwa pola scalania musi być zgodna z nazwą kolumny w DataTable. Jeśli nie określisz mapowanych pól, Mail Merge z regionami nie powiedzie się dla żadnego pola scalania, które ma nazwę inną niż nazwa kolumny.
- Aspose.Words dla C++ obsługuje tylko źródła danych oparte na IMailMergeDataSource i IMailMergeDataSourceRoot. W przeciwieństwie do .NET i Java, C++ nie ma ogólnie przyjętego wieloplatformowego API do pracy z bazami danych (takimi jak ADODB, ODBC lub JDBC). Aby pracować z określonym źródłem danych, musisz zaimplementować interfejs IMailMergeDataSource lub IMailMergeDataSourceRoot.
Jeśli jedna z tych zasad zostanie złamana, otrzymasz nieoczekiwane wyniki lub może zostać zgłoszony wyjątek.