Mail Merge con Regioni

Puoi creare diverse regioni nel tuo modello per avere aree speciali che puoi semplicemente riempire con i tuoi dati. Utilizzare mail merge con regioni se si desidera inserire tabelle, righe con dati ripetuti per far crescere dinamicamente i documenti specificando tali regioni all’interno del modello.

È possibile creare regioni nidificate (figlio) e unire le regioni. Il vantaggio principale dell’utilizzo di questo tipo è quello di aumentare dinamicamente le parti all’interno di un documento. Vedere ulteriori dettagli nel prossimo articolo “Annidato Mail Merge con regioni”.

Come eseguire Mail Merge con le regioni

Una regione mail merge è una parte specifica all’interno di un documento che ha un punto iniziale e un punto finale. Entrambi i punti sono rappresentati come campi mail merge con nomi specifici “TableStart:XXX” e “TableEnd:XXX”. Tutto il contenuto incluso in un’area mail merge verrà automaticamente ripetuto per ogni record nell’origine dati.

Aspose.Words consente di eseguire mail merge con regioni utilizzando uno dei metodi ExecuteWithRegions che accettano l’origine dati personalizzata IMailMergeDataSource.

Il seguente esempio di codice mostra come eseguire mail merge con regioni dal database sqlite con SQLiteCpp:

È possibile notare la differenza tra il documento prima di eseguire mail merge con le regioni:

mail_merge_with_regions_template

E dopo aver eseguito mail merge con le regioni:

mail_merge_with_regions_execute

Limitazioni di Mail Merge con le regioni

Ci sono alcuni punti importanti che è necessario considerare quando si esegue un mail merge con le regioni:

  • Il punto iniziale TableStart:Orders e il punto finale TableEnd:Orders devono essere entrambi nella stessa riga o cella. Ad esempio, se si avvia un’area di unione in una cella di una tabella, è necessario terminare l’area di unione nella stessa riga della prima cella. Il nome del campo Unione deve corrispondere al nome della colonna in DataTable. A meno che non si specifichino campi mappati, mail merge con regioni non avrà successo per qualsiasi campo di unione con un nome diverso dal nome della colonna.
  • Aspose.Words per C++ supporta solo origini dati basate su IMailMergeDataSource e IMailMergeDataSourceRoot. A differenza di .NET e Java, C++ non ha una piattaforma multipiattaforma generalmente accettata API per lavorare con i database (come ADODB, ODBC o JDBC). Per lavorare con un’origine dati specifica, è necessario implementare l’interfaccia IMailMergeDataSource o IMailMergeDataSourceRoot.

Se una di queste regole viene infranta, si otterranno risultati imprevisti o potrebbe essere generata un’eccezione.