FieldMergingArgs

FieldMergingArgs class

Şunun için veri sağlar:Birleştirme Alanı olay.

Daha fazla bilgi edinmek için şu adresi ziyaret edin:Posta Birleştirme ve Raporlama belgeleme makalesi.

public class FieldMergingArgs : FieldMergingArgsBase

Özellikleri

İsimTanım
Document { get; }şunu döndürür:Documentposta birleştirme işleminin gerçekleştirildiği nesne.
DocumentFieldName { get; }Belgede belirtilen birleştirme alanının adını alır.
Field { get; }Geçerli birleştirme alanını temsil eden nesneyi alır.
FieldName { get; }Veri kaynağındaki birleştirme alanının adını alır.
FieldValue { get; set; }Alanın değerini veri kaynağından alır veya ayarlar.
RecordIndex { get; }Birleştirilen kaydın sıfır tabanlı dizinini alır.
TableName { get; }Geçerli birleştirme işlemi için veri tablosunun adını veya ad mevcut değilse boş dizeyi alır.
Text { get; set; }Geçerli birleştirme alanı için belgeye eklenecek metni alır veya ayarlar.

Notlar

TheBirleştirme Alanı olay, belgede basit bir mail merge alanıyla karşılaşıldığında posta birleştirme sırasında meydana gelir. Bu olaya, posta birleştirme motorunun belgeye eklemesi için return metnini göndermek üzere yanıt verebilirsiniz.

Örnekler

HTML belgeleri biçiminde birleştirme verilerini işleyen özel bir geri aramayla bir posta birleştirmenin nasıl yürütüleceğini gösterir.

public void MergeHtml()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(@"MERGEFIELD  html_Title  \b Content");
    builder.InsertField(@"MERGEFIELD  html_Body  \b Content");

    object[] mergeData =
    {
        "<html>" +
            "<h1>" +
                "<span style=\"color: #0000ff; font-family: Arial;\">Hello World!</span>" +
            "</h1>" +
        "</html>", 

        "<html>" +
            "<blockquote>" +
                "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>" +
            "</blockquote>" +
        "</html>"
    };

    doc.MailMerge.FieldMergingCallback = new HandleMergeFieldInsertHtml();
    doc.MailMerge.Execute(new[] { "html_Title", "html_Body" }, mergeData);

    doc.Save(ArtifactsDir + "MailMergeEvent.MergeHtml.docx");
}

/// <summary>
/// Posta birleştirme işlemi, adı "html_" önekiyle başlayan bir MERGEFIELD ile karşılaşırsa,
/// bu geri çağırma birleştirme verilerini HTML içeriği olarak ayrıştırır ve sonucu MERGEFIELD'ın belge konumuna ekler.
/// </summary>
private class HandleMergeFieldInsertHtml : IFieldMergingCallback
{
    /// <summary>
    /// Bir posta birleştirme işlemi verileri bir MERGEFIELD'a birleştirdiğinde çağrılır.
    /// </summary>
    void IFieldMergingCallback.FieldMerging(FieldMergingArgs args)
    {
        if (args.DocumentFieldName.StartsWith("html_") && args.Field.GetFieldCode().Contains("\\b"))
        {
            // Ayrıştırılmış HTML verilerini belgenin gövdesine ekle.
            DocumentBuilder builder = new DocumentBuilder(args.Document);
            builder.MoveToMergeField(args.DocumentFieldName);
            builder.InsertHtml((string)args.FieldValue);

            // Birleştirilmiş içeriği zaten manuel olarak eklediğimizden,
            // Bu olaya "Metin" özelliği aracılığıyla içerik döndürerek yanıt vermemize gerek kalmayacak.
            args.Text = string.Empty;
        }
    }

    void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs args)
    {
        // Hiçbir şey yapmayın.
    }
}

Ayrıca bakınız