FieldMergingArgs

FieldMergingArgs class

Tillhandahåller data förSammanfogaFält händelse.

För att lära dig mer, besökKoppla dokument och rapportering dokumentationsartikel.

public class FieldMergingArgs : FieldMergingArgsBase

Egenskaper

namnBeskrivning
Document { get; }ReturnerarDocumentobjekt för vilket dokumentkopplingen utförs.
DocumentFieldName { get; }Hämtar namnet på kopplingsfältet som anges i dokumentet.
Field { get; }Hämtar objektet som representerar det aktuella kopplingsfältet.
FieldName { get; }Hämtar namnet på kopplingsfältet i datakällan.
FieldValue { get; set; }Hämtar eller anger värdet för fältet från datakällan.
RecordIndex { get; }Hämtar det nollbaserade indexet för posten som sammanfogas.
TableName { get; }Hämtar namnet på datatabellen för den aktuella sammanfogningsoperationen eller en tom sträng om namnet inte är tillgängligt.
Text { get; set; }Hämtar eller anger texten som ska infogas i dokumentet för det aktuella kopplingsfältet.

Anmärkningar

DeSammanfogaFält Händelsen inträffar under dokumentkoppling när ett enkelt fält för dokumentkoppling påträffas i dokumentet. Du kan svara på den här händelsen för att returnera -text som dokumentkopplingsmotorn ska infoga i dokumentet.

Exempel

Visar hur man utför en dokumentkoppling med ett anpassat återanrop som hanterar kopplingsdata i form av HTML-dokument.

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>
/// Om dokumentkopplingen stöter på ett MERGEFIELD vars namn börjar med prefixet "html_",
/// denna återanropsfunktion tolkar dess sammanslagningsdata som HTML-innehåll och lägger till resultatet till dokumentets plats för MERGEFIELD.
/// </summary>
private class HandleMergeFieldInsertHtml : IFieldMergingCallback
{
    /// <summary>
    /// Anropas när en dokumentkoppling sammanfogar data till ett MERGEFIELD.
    /// </summary>
    void IFieldMergingCallback.FieldMerging(FieldMergingArgs args)
    {
        if (args.DocumentFieldName.StartsWith("html_") && args.Field.GetFieldCode().Contains("\\b"))
        {
            // Lägg till parsad HTML-data i dokumentets brödtext.
            DocumentBuilder builder = new DocumentBuilder(args.Document);
            builder.MoveToMergeField(args.DocumentFieldName);
            builder.InsertHtml((string)args.FieldValue);

            // Eftersom vi redan har infogat det sammanfogade innehållet manuellt,
            // vi behöver inte svara på den här händelsen genom att returnera innehåll via egenskapen "Text".
            args.Text = string.Empty;
        }
    }

    void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs args)
    {
        // Gör ingenting.
    }
}

Se även