FieldMergingArgs

FieldMergingArgs class

Fornisce i dati per ilUnisci campo evento.

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

public class FieldMergingArgs : FieldMergingArgsBase

Proprietà

NomeDescrizione
Document { get; }Restituisce ilDocument oggetto per cui 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 da unire.
TableName { get; }Ottiene il nome della tabella 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

ILUnisci campo L’evento si verifica durante la stampa unione quando nel documento viene rilevato un semplice campo mail merge . Puoi rispondere a questo evento per restituire il testo che il motore di stampa unione dovrà inserire nel documento.

Esempi

Mostra come eseguire una stampa unione con un callback personalizzato che gestisce i dati di unione sotto forma di documenti HTML.

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>
/// 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à "Text".
            args.Text = string.Empty;
        }
    }

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

Guarda anche