UseNonMergeFields

MailMerge.UseNonMergeFields property

Närsann , anger att utöver MERGEFIELD-fält utförs dokumentkoppling i vissa andra typer av fält och även i “{{fieldName}}"-taggar.

public bool UseNonMergeFields { get; set; }

Anmärkningar

Normalt sett utförs dokumentkoppling endast i MERGEFIELD-fält, men flera kunder har byggt sina reporting med hjälp av andra fält och har skapat många dokument på det här sättet. För att förenkla migreringen (och eftersom denna -metod användes oberoende av varandra av flera kunder) introducerades möjligheten att koppla dokument till andra fält.

NärUseNonMergeFields är inställd påsannAspose.Words kommer att utföra dokumentkopplingar i följande fält:

MERGEFIELD Fältnamn

MAKROKNAPP NOMACRO Fältnamn

OM 0 = 0 “{Fältnamn}” "”

Även närUseNonMergeFields är inställd påsannAspose.Words kommer att utföra dokumentkoppling till text tags “{{fieldName}}”. Dessa är inte fält, utan bara texttaggar.

Exempel

Visar hur man bevarar utseendet på alternativa dokumentkopplingstaggar som inte används under en dokumentkoppling.

public void PreserveUnusedTags(bool preserveUnusedTags)
{
    Document doc = CreateSourceDocWithAlternativeMergeFields();
    DataTable dataTable = CreateSourceTablePreserveUnusedTags();

     // Som standard placerar en dokumentkoppling data från varje rad i en tabell i MERGEFIELDS, som namnger kolumner i tabellen.
    // Vårt dokument har inga sådana fält, men det har klartexttaggar omgivna av klammerparenteser.
    // Om vi ställer in flaggan "PreserveUnusedTags" till "true" kan vi behandla dessa taggar som MERGEFIELDS
    // för att tillåta att vår dokumentkoppling infogar data från datakällan vid dessa taggar.
    // Om vi sätter flaggan "PreserveUnusedTags" till "false",
    // dokumentkopplingen konverterar dessa taggar till MERGEFIELDS och lämnar dem ofyllda.
    doc.MailMerge.PreserveUnusedTags = preserveUnusedTags;
    doc.MailMerge.Execute(dataTable);

    doc.Save(ArtifactsDir + "MailMerge.PreserveUnusedTags.docx");

    // Vårt dokument har en tagg för en kolumn med namnet "Kolumn2", som inte finns i tabellen.
    // Om vi sätter flaggan "PreserveUnusedTags" till "false", then the mail merge will convert this tag into a MERGEFIELD.
    Assert.AreEqual(doc.GetText().Contains("{{ Column2 }}"), preserveUnusedTags);

    if (preserveUnusedTags)
        Assert.AreEqual(0, doc.Range.Fields.Count(f => f.Type == FieldType.FieldMergeField));
    else
        Assert.AreEqual(1, doc.Range.Fields.Count(f => f.Type == FieldType.FieldMergeField));
}

/// <summary>
/// Skapa ett dokument och lägg till två klartexttaggar som kan fungera som MERGEFIELDS under en dokumentkoppling.
/// </summary>
private static Document CreateSourceDocWithAlternativeMergeFields()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.Writeln("{{ Column1 }}");
    builder.Writeln("{{ Column2 }}");

    // Våra taggar registreras endast som destinationer för dokumentkopplingsdata om vi ställer in detta till sant.
    doc.MailMerge.UseNonMergeFields = true;

    return doc;
}

/// <summary>
/// Skapa en enkel datatabell med en kolumn.
/// </summary>
private static DataTable CreateSourceTablePreserveUnusedTags()
{
    DataTable dataTable = new DataTable("MyTable");
    dataTable.Columns.Add("Column1");
    dataTable.Rows.Add(new object[] { "Value1" });

    return dataTable;
}

Se även