UseWholeParagraphAsRegion
Contents
[
Hide
]MailMerge.UseWholeParagraphAsRegion property
Gets or sets a value indicating whether whole paragraph with TableStart or TableEnd field or particular range between TableStart and TableEnd fields should be included into mail merge region.
public bool UseWholeParagraphAsRegion { get; set; }
Remarks
The default value is true
.
Examples
Shows the relationship between mail merge regions and paragraphs.
public void UseWholeParagraphAsRegion(bool useWholeParagraphAsRegion)
{
Document doc = CreateSourceDocWithNestedMergeRegions();
DataTable dataTable = CreateSourceTableDataTableForOneRegion();
// By default, a paragraph can belong to no more than one mail merge region.
// The contents of our document do not meet these criteria.
// If we set the "UseWholeParagraphAsRegion" flag to "true",
// running a mail merge on this document will throw an exception.
// If we set the "UseWholeParagraphAsRegion" flag to "false",
// we will be able to execute a mail merge on this document.
doc.MailMerge.UseWholeParagraphAsRegion = useWholeParagraphAsRegion;
if (useWholeParagraphAsRegion)
Assert.Throws<InvalidOperationException>(() => doc.MailMerge.ExecuteWithRegions(dataTable));
else
doc.MailMerge.ExecuteWithRegions(dataTable);
// The mail merge populates our first region while leaving the second region unused
// since it is the region that breaks the rule.
doc.Save(ArtifactsDir + "MailMerge.UseWholeParagraphAsRegion.docx");
}
/// <summary>
/// Create a document with two mail merge regions sharing one paragraph.
/// </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>
/// Create a data table that can populate one region during a mail merge.
/// </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;
}
See Also
- class MailMerge
- namespace Aspose.Words.MailMerging
- assembly Aspose.Words