MergeDuplicateRegions

MailMerge.MergeDuplicateRegions property

Obtient ou définit une valeur indiquant si toutes les régions de publipostage de document portant le nom d’une source de données doivent être fusionnées lors de l’exécution d’un publipostage avec des régions sur la source de données ou uniquement la première.

public bool MergeDuplicateRegions { get; set; }

Remarques

La valeur par défaut est faux .

Exemples

Montre comment travailler avec des régions de fusion et publipostage en double.

public void MergeDuplicateRegions(bool mergeDuplicateRegions)
{
    Document doc = CreateSourceDocMergeDuplicateRegions();
    DataTable dataTable = CreateSourceTableMergeDuplicateRegions();

    // Si nous définissons la propriété "MergeDuplicateRegions" sur "false", le publipostage affectera la première région,
    // tandis que les MERGEFIELDs du second seront laissés dans l'état de pré-fusion.
    // Pour fusionner les deux régions comme ça,
    // il faudrait exécuter le publipostage deux fois sur une table du même nom.
    // Si nous définissons la propriété "MergeDuplicateRegions" sur "true", le publipostage affectera les deux régions.
    doc.MailMerge.MergeDuplicateRegions = mergeDuplicateRegions;

    doc.MailMerge.ExecuteWithRegions(dataTable);
    doc.Save(ArtifactsDir + "MailMerge.MergeDuplicateRegions.docx");
}

/// <summary>
/// Renvoie un document qui contient deux régions de publipostage en double (partageant le même nom dans les balises "TableStart/End").
/// </summary>
private static Document CreateSourceDocMergeDuplicateRegions()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(" MERGEFIELD TableStart:MergeRegion");
    builder.InsertField(" MERGEFIELD Column1");
    builder.InsertField(" MERGEFIELD TableEnd:MergeRegion");
    builder.InsertParagraph();

    builder.InsertField(" MERGEFIELD TableStart:MergeRegion");
    builder.InsertField(" MERGEFIELD Column2");
    builder.InsertField(" MERGEFIELD TableEnd:MergeRegion");

    return doc;
}

/// <summary>
/// Crée une table de données avec une ligne et deux colonnes.
/// </summary>
private static DataTable CreateSourceTableMergeDuplicateRegions()
{
    DataTable dataTable = new DataTable("MergeRegion");
    dataTable.Columns.Add("Column1");
    dataTable.Columns.Add("Column2");
    dataTable.Rows.Add(new object[] { "Value 1", "Value 2" });

    return dataTable;
}

Voir également