MailMerge

MailMerge class

Rappresenta la funzionalità di stampa unione.

Per saperne di più, visita ilStampa unione e reporting articolo di documentazione.

public class MailMerge

Proprietà

NomeDescrizione
CleanupOptions { get; set; }Ottiene o imposta un set di flag che specificano quali elementi devono essere rimossi durante la stampa unione.
CleanupParagraphsWithPunctuationMarks { get; set; }Ottiene o imposta un valore che indica se i paragrafi con segni di punteggiatura sono considerati vuoti e devono essere rimossi seRemoveEmptyParagraphs l’opzione è specificata.
FieldMergingCallback { get; set; }Si verifica durante la stampa unione quando nel documento viene rilevato un campo di stampa unione.
MailMergeCallback { get; set; }Permette di gestire eventi particolari durante la stampa in serie.
MappedDataFields { get; }Restituisce una raccolta che rappresenta i campi dati mappati per l’operazione di stampa unione.
MergeDuplicateRegions { get; set; }Ottiene o imposta un valore che indica se tutte le aree di stampa unione del documento con il nome di un’origine dati devono essere unite durante l’esecuzione di una stampa unione con aree rispetto all’origine dati o solo la prima.
MergeWholeDocument { get; set; }Ottiene o imposta un valore che indica se i campi nell’intero documento vengono aggiornati durante l’esecuzione di una stampa unione con regioni.
PreserveUnusedTags { get; set; }Ottiene o imposta un valore che indica se i tag “mustache” non utilizzati devono essere conservati.
RegionEndTag { get; set; }Ottiene o imposta un tag di fine della regione di stampa unione.
RegionStartTag { get; set; }Ottiene o imposta un tag iniziale della regione di stampa unione.
RestartListsAtEachSection { get; set; }Ottiene o imposta un valore che indica se gli elenchi vengono riavviati in ciascuna sezione dopo l’esecuzione di una stampa unione.
RetainFirstSectionStart { get; set; }Ottiene o imposta un valore che indica se ilSectionStart della prima sezione del documento e le sue copie per le successive righe dell’origine dati vengono conservate durante la stampa unione o aggiornate in base al comportamento di MS Word.
TrimWhitespaces { get; set; }Ottiene o imposta un valore che indica se gli spazi finali e iniziali vengono eliminati dai valori di stampa unione.
UnconditionalMergeFieldsAndRegions { get; set; }Ottiene o imposta un valore che indica se i campi e le aree di unione vengono uniti indipendentemente dalla condizione del campo IF padre.
UseNonMergeFields { get; set; }QuandoVERO , specifica che oltre ai campi MERGEFIELD, la stampa unione viene eseguita in alcuni altri tipi di campi e anche nei tag “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Ottiene o imposta un valore che indica se è presente l’intero paragrafoInizio tabella OFine tabella field o un intervallo particolare compreso traInizio tabella EFine tabella i campi devono essere inclusi nella regione della stampa unione.

Metodi

NomeDescrizione
DeleteFields()Rimuove i campi relativi alla stampa unione dal documento.
Execute(DataRow)Esegue la stampa unione da aDataRow nel documento.
Execute(DataTable)Esegue la stampa unione da un DataTable nel documento.
Execute(DataView)Esegue la stampa unione da aDataView nel documento.
Execute(IDataReader)Esegue la stampa unione daIDataReader nel documento.
Execute(IMailMergeDataSource)Esegue una stampa unione da un’origine dati personalizzata.
Execute(string[], object[])Esegue un’operazione di stampa unione per un singolo record.
ExecuteADO(object)Esegue la stampa unione da un oggetto ADO Recordset nel documento.
ExecuteWithRegions(DataSet)Esegue la stampa unione da aSet di dati in un documento con regioni di stampa unione.
ExecuteWithRegions(DataTable)Esegue la stampa unione da aTabella dati nel documento con regioni di stampa unione.
ExecuteWithRegions(DataView)Esegue la stampa unione da aDataView nel documento con regioni di stampa unione.
ExecuteWithRegions(IMailMergeDataSource)Esegue una stampa unione da un’origine dati personalizzata con aree di stampa unione.
ExecuteWithRegions(IMailMergeDataSourceRoot)Esegue una stampa unione da un’origine dati personalizzata con aree di stampa unione.
ExecuteWithRegions(IDataReader, string)Esegue la stampa unione daIDataReader nel documento con regioni di stampa unione.
ExecuteWithRegionsADO(object, string)Esegue la stampa unione da un oggetto ADO Recordset nel documento con aree di stampa unione.
GetFieldNames()Restituisce una raccolta di nomi di campi di stampa unione disponibili nel documento.
GetFieldNamesForRegion(string)Restituisce una raccolta di nomi di campi di stampa unione disponibili nella regione.
GetFieldNamesForRegion(string, int)Restituisce una raccolta di nomi di campi di stampa unione disponibili nella regione.
GetRegionsByName(string)Restituisce una raccolta di regioni di stampa unione con il nome specificato.
GetRegionsHierarchy()Restituisce una gerarchia completa di regioni (con campi) disponibili nel documento.

Osservazioni

Affinché l’operazione di stampa unione funzioni, il documento deve contenere Word MERGEFIELD e facoltativamente campi NEXT. Durante l’operazione di stampa unione, i campi di unione nel documento vengono sostituiti con i valori dell’origine dati.

Esistono due modi distinti per utilizzare la stampa unione: con aree di stampa unione e senza.

La stampa unione più semplice è senza aree ed è molto simile al funzionamento della stampa unione in Word. UtilizzoEseguire metodi per unire le informazioni da alcune origini dati comeTabella dati ,Set di dati ,DataView ,IDataReader o una serie di oggetti nel tuo documento. The MailMerge L’oggetto elabora tutti i record dell’origine dati e copia e aggiunge il contenuto dell’intero documento per ciascun record.

Tieni presente che quandoMailMerge L’oggetto incontra un campo NEXT, seleziona il successivo record nell’origine dati e continua l’unione senza copiare alcun contenuto.

UtilizzoExecuteWithRegions e altri sovraccarichi per unire le informazioni in un documento con le regioni di stampa unione definite. Puoi usare Set di dati ,Tabella dati ,DataView OIDataReader come origini dati per questa operazione.

È necessario utilizzare le regioni di stampa unione se si desidera aumentare dinamicamente le porzioni all’interno del documento . Senza le regioni di stampa unione, l’intero documento verrà ripetuto per ogni record dell’ origine dati.

Esempi

Mostra come eseguire una stampa unione con i dati di un DataTable.

public void ExecuteDataTable()
{
    DataTable table = new DataTable("Test");
    table.Columns.Add("CustomerName");
    table.Columns.Add("Address");
    table.Rows.Add(new object[] { "Thomas Hardy", "120 Hanover Sq., London" });
    table.Rows.Add(new object[] { "Paolo Accorti", "Via Monte Bianco 34, Torino" });

    // Di seguito sono riportati due modi per utilizzare DataTable come origine dati per una stampa unione.
    // 1 - Utilizza l'intera tabella per la stampa unione per creare un documento di stampa unione di output per ogni riga nella tabella:
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.WholeTable.docx");

    // 2 - Utilizza una riga della tabella per creare un documento di stampa unione di output:
    doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table.Rows[1]);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.OneRow.docx");
}

/// <summary>
/// Crea un documento di origine per la stampa unione.
/// </summary>
private static Document CreateSourceDocExecuteDataTable()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(" MERGEFIELD CustomerName ");
    builder.InsertParagraph();
    builder.InsertField(" MERGEFIELD Address ");

    return doc;
}

Guarda anche