UseWholeParagraphAsRegion

MailMerge.UseWholeParagraphAsRegion property

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob der gesamte Absatz mit TableStart- oder TableEnd-Feld oder ein bestimmter Bereich zwischen TableStart- und TableEnd-Feldern in den Seriendruckbereich aufgenommen werden soll.

public bool UseWholeParagraphAsRegion { get; set; }

Bemerkungen

Der Standardwert ist Stimmt .

Beispiele

Zeigt die Beziehung zwischen Seriendruckbereichen und Absätzen.

public void UseWholeParagraphAsRegion(bool useWholeParagraphAsRegion)
{
    Document doc = CreateSourceDocWithNestedMergeRegions();
    DataTable dataTable = CreateSourceTableDataTableForOneRegion();

    // Standardmäßig kann ein Absatz nicht mehr als einem Seriendruckbereich angehören.
    // Der Inhalt unseres Dokuments erfüllt diese Kriterien nicht.
    // Wenn wir das Flag "UseWholeParagraphAsRegion" auf "true" setzen,
    // Das Ausführen eines Seriendrucks für dieses Dokument löst eine Ausnahme aus.
    // Wenn wir das Flag "UseWholeParagraphAsRegion" auf "false" setzen,
    // Wir können für dieses Dokument einen Seriendruck ausführen.
    doc.MailMerge.UseWholeParagraphAsRegion = useWholeParagraphAsRegion;

    if (useWholeParagraphAsRegion)
        Assert.Throws<InvalidOperationException>(() => doc.MailMerge.ExecuteWithRegions(dataTable));
    else
        doc.MailMerge.ExecuteWithRegions(dataTable);

    // Der Seriendruck füllt unsere erste Region, während die zweite Region ungenutzt bleibt
    // da es die Region ist, die die Regel bricht.
    doc.Save(ArtifactsDir + "MailMerge.UseWholeParagraphAsRegion.docx");
}

/// <summary>
/// Erstellen Sie ein Dokument mit zwei Seriendruckbereichen, die sich einen Absatz teilen.
/// </summary>
private static Document CreateSourceDocWithNestedMergeRegions()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.Write("Region 1: ");
    builder.InsertField(" MERGEFIELD TableStart:MyTable");
    builder.InsertField(" MERGEFIELD Column1");
    builder.Write(", ");
    builder.InsertField(" MERGEFIELD Column2");
    builder.InsertField(" MERGEFIELD TableEnd:MyTable");

    builder.Write(", Region 2: ");
    builder.InsertField(" MERGEFIELD TableStart:MyOtherTable");
    builder.InsertField(" MERGEFIELD TableEnd:MyOtherTable");

    return doc;
}

/// <summary>
/// Erstellen Sie eine Datentabelle, die während eines Seriendrucks eine Region füllen kann.
/// </summary>
private static DataTable CreateSourceTableDataTableForOneRegion()
{
    DataTable dataTable = new DataTable("MyTable");
    dataTable.Columns.Add("Column1");
    dataTable.Columns.Add("Column2");
    dataTable.Rows.Add(new object[] { "Value 1", "Value 2" });

    return dataTable;
}

Siehe auch