FieldMergingArgs

FieldMergingArgs class

Fornisce i dati per il Unisci campo evento.

public class FieldMergingArgs : FieldMergingArgsBase

Proprietà

Nome Descrizione
Document { get; } Restituisce ilDocument oggetto per il quale viene eseguita la stampa unione.
DocumentFieldName { get; } Ottiene il nome del campo di unione come specificato nel documento.
Field { get; } Ottiene l’oggetto che rappresenta il campo di unione corrente.
FieldName { get; } Ottiene il nome del campo di unione nell’origine dati.
FieldValue { get; set; } Ottiene o imposta il valore del campo dall’origine dati.
RecordIndex { get; } Ottiene l’indice in base zero del record che viene unito.
TableName { get; } Ottiene il nome della tabella di dati per l’operazione di unione corrente o una stringa vuota se il nome non è disponibile.
Text { get; set; } Ottiene o imposta il testo che verrà inserito nel documento per il campo di unione corrente.

Osservazioni

Il Unisci campo l’evento si verifica durante la stampa unione quando nel documento viene rilevato un semplice campo di stampa unione . Puoi rispondere a questo evento per restituire testo per il motore di stampa unione da inserire nel documento.

Esempi

Mostra come eseguire una stampa unione con una richiamata personalizzata che gestisce i dati di unione sotto forma di documenti HTML.

{
    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>
/// Se la stampa unione incontra un MERGEFIELD il cui nome inizia con il prefisso "html_",
/// questo callback analizza i dati di unione come contenuto HTML e aggiunge il risultato alla posizione del documento di MERGEFIELD.
/// </summary>
private class HandleMergeFieldInsertHtml : IFieldMergingCallback
{
    /// <summary>
    /// Chiamato quando una stampa unione unisce i dati in un MERGEFIELD.
    /// </summary>
    void IFieldMergingCallback.FieldMerging(FieldMergingArgs args)
    {
        if (args.DocumentFieldName.StartsWith("html_") && args.Field.GetFieldCode().Contains("\\b"))
        {
            // Aggiunge dati HTML analizzati al corpo del documento.
            DocumentBuilder builder = new DocumentBuilder(args.Document);
            builder.MoveToMergeField(args.DocumentFieldName);
            builder.InsertHtml((string)args.FieldValue);

            // Poiché abbiamo già inserito manualmente il contenuto unito,
             // non avremo bisogno di rispondere a questo evento restituendo il contenuto tramite la proprietà "Testo".
            args.Text = string.Empty;
        }
    }

    void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs args)
    {
        // Fare niente.
    }
}

Guarda anche