MailMergeCleanupOptions

MailMergeCleanupOptions enumeration

Adres mektup birleştirme sırasında hangi öğelerin kaldırılacağını belirleyen seçenekleri belirtir.

[Flags]
public enum MailMergeCleanupOptions

değerler

İsim Değer Tanım
None 0 Varsayılan bir değer belirtir.
RemoveEmptyParagraphs 1 Veri içermeyen adres mektup birleştirme alanları içeren paragrafların belgeden kaldırılıp kaldırılmayacağını belirtir. Bu seçenek ayarlandığında, aksi takdirde boş olan bölge başlangıç ve bitiş birleştirme alanlarını içeren paragraflar da kaldırılır .
RemoveUnusedRegions 2 Kullanılmayan adres mektup birleştirme bölgelerinin belgeden kaldırılması gerekip gerekmediğini belirtir.
RemoveUnusedFields 4 Kullanılmayan birleştirme alanlarının belgeden kaldırılması gerekip gerekmediğini belirtir.
RemoveContainingFields 8 İç içe birleştirme alanları kaldırılırsa, birleştirme alanları (örneğin, IF’ler) içeren alanların belge ‘den kaldırılması gerekip gerekmediğini belirtir.
RemoveStaticFields 10 Statik alanların belgeden kaldırılması gerekip gerekmediğini belirtir. Statik alanlar, herhangi bir belge değişikliğinde sonuçları aynı kalan alanlardır. Sonuçlarını bir document dosyasında saklamayan ve anında hesaplanan alanlar (örn.FieldListNum , FieldSymbol , vb.) statik olarak kabul edilmez.
RemoveEmptyTableRows 20 Adres mektup birleştirme bölgelerini içeren boş satırların belgeden kaldırılıp kaldırılmayacağını belirtir.

Örnekler

Adres mektup birleştirmenin oluşturabileceği boş paragrafların birleştirme çıktı belgesinden nasıl kaldırılacağını gösterir.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.InsertField(" MERGEFIELD TableStart:MyTable");
builder.InsertField(" MERGEFIELD FirstName ");
builder.Write(" ");
builder.InsertField(" MERGEFIELD LastName ");
builder.InsertField(" MERGEFIELD TableEnd:MyTable");

DataTable dataTable = new DataTable("MyTable");
dataTable.Columns.Add("FirstName");
dataTable.Columns.Add("LastName");
dataTable.Rows.Add(new object[] { "John", "Doe" });
dataTable.Rows.Add(new object[] { "", "" });
dataTable.Rows.Add(new object[] { "Jane", "Doe" });

doc.MailMerge.CleanupOptions = mailMergeCleanupOptions;
doc.MailMerge.ExecuteWithRegions(dataTable);

if (doc.MailMerge.CleanupOptions == MailMergeCleanupOptions.RemoveEmptyParagraphs) 
    Assert.AreEqual(
        "John Doe\r" +
        "Jane Doe", doc.GetText().Trim());
else
    Assert.AreEqual(
        "John Doe\r" +
        " \r" +
        "Jane Doe", doc.GetText().Trim());

Adres mektup birleştirme sırasında kullanılmayan MERGEFIELD’lerin otomatik olarak nasıl kaldırılacağını gösterir.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Adres mektup birleştirme veri kaynağı tablosunun üç sütunu için MERGEFIELD'ler içeren bir belge oluşturun,
// ve adları MERGEFIELD'lerimizle eşleşen yalnızca iki sütunlu bir tablo oluşturun.
builder.InsertField(" MERGEFIELD FirstName ");
builder.Write(" ");
builder.InsertField(" MERGEFIELD LastName ");
builder.InsertParagraph();
builder.InsertField(" MERGEFIELD City ");

DataTable dataTable = new DataTable("MyTable");
dataTable.Columns.Add("FirstName");
dataTable.Columns.Add("LastName");
dataTable.Rows.Add(new object[] { "John", "Doe" });
dataTable.Rows.Add(new object[] { "Joe", "Bloggs" });

// Üçüncü MERGEFIELD veri kaynağımızda mevcut olmayan bir "Şehir" sütununa başvuruyor.
// Adres mektup birleştirme, bunun gibi alanları birleştirme öncesi durumlarında olduğu gibi bırakacaktır.
// "CleanupOptions" özelliğinin "RemoveUnusedFields" olarak ayarlanması tüm MERGEFIELD'leri kaldıracaktır
// adres mektup birleştirme sırasında birleştirme belgelerini temizlemek için kullanılmaz.
doc.MailMerge.CleanupOptions = mailMergeCleanupOptions;
doc.MailMerge.Execute(dataTable);

if (mailMergeCleanupOptions == MailMergeCleanupOptions.RemoveUnusedFields || 
    mailMergeCleanupOptions == MailMergeCleanupOptions.RemoveStaticFields)
    Assert.AreEqual(0, doc.Range.Fields.Count);
else
    Assert.AreEqual(2, doc.Range.Fields.Count);

Ayrıca bakınız