Provides data for the MergeField event.
For a list of all members of this type, see MergeFieldEventArgs Members.
System.Object
System.EventArgs
Aspose.Words.Reporting.MergeFieldEventArgsBase
Aspose.Words.Reporting.MergeFieldEventArgs
[Visual Basic]Public Class MergeFieldEventArgs
Remarks
The MergeField event occurs during mail merge when a simple mail merge field is encountered in the document. You can respond to this event to return text for the mail merge engine to insert into the document.
Example
Shows how to mail merge HTML data into a document.
[C#]
// File 'MailMerge.InsertHtml.doc' has merge field named 'htmlField1' in it.
// File 'MailMerge.HtmlData.html' contains some valid Html data.
// The same approach can be used when merging HTML data from database.
public void MailMergeInsertHtml()
{
Document doc = new Document(MyDir + "MailMerge.InsertHtml.doc");
// Add a hadler for the MergeField event.
doc.MailMerge.MergeField += new MergeFieldEventHandler(HandleMergeFieldInsertHtml);
// Load some Html from file.
StreamReader sr = File.OpenText(MyDir + "MailMerge.HtmlData.html");
string htmltext = sr.ReadToEnd();
sr.Close();
// Execute mail merge.
doc.MailMerge.Execute(new string[] { "htmlField1" }, new string[] { htmltext });
// Save resulting document with a new name.
doc.Save(MyDir + "MailMerge.InsertHtml Out.doc");
}
/// <summary>
/// This is called when merge field is actually merged with data in the document.
/// </summary>
private static void HandleMergeFieldInsertHtml(object sender, MergeFieldEventArgs e)
{
// All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
if (e.DocumentFieldName.StartsWith("html"))
{
// Insert the text for this merge field as HTML data, using DocumentBuilder.
DocumentBuilder builder = new DocumentBuilder(e.Document);
builder.MoveToMergeField(e.DocumentFieldName);
builder.InsertHtml((string)e.FieldValue);
// The HTML text itself should not be inserted.
// We have already inserted it as an HTML.
e.Text = "";
}
}[Visual Basic]
' File 'MailMerge.InsertHtml.doc' has merge field named 'htmlField1' in it.
' File 'MailMerge.HtmlData.html' contains some valid Html data.
' The same approach can be used when merging HTML data from database.
<Test> _
Public Sub MailMergeInsertHtml()
Dim doc As Document = New Document(MyDir & "MailMerge.InsertHtml.doc")
' Add a hadler for the MergeField event.
AddHandler doc.MailMerge.MergeField, AddressOf HandleMergeFieldInsertHtml
' Load some Html from file.
Dim sr As StreamReader = File.OpenText(MyDir & "MailMerge.HtmlData.html")
Dim htmltext As String = sr.ReadToEnd()
sr.Close()
' Execute mail merge.
doc.MailMerge.Execute(New String() { "htmlField1" }, New String() { htmltext })
' Save resulting document with a new name.
doc.Save(MyDir & "MailMerge.InsertHtml Out.doc")
End Sub
''' <summary>
''' This is called when merge field is actually merged with data in the document.
''' </summary>
Private Shared Sub HandleMergeFieldInsertHtml(ByVal sender As Object, ByVal e As MergeFieldEventArgs)
' All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
If e.DocumentFieldName.StartsWith("html") Then
' Insert the text for this merge field as HTML data, using DocumentBuilder.
Dim builder As DocumentBuilder = New DocumentBuilder(e.Document)
builder.MoveToMergeField(e.DocumentFieldName)
builder.InsertHtml(CStr(e.FieldValue))
' The HTML text itself should not be inserted.
' We have already inserted it as an HTML.
e.Text = ""
End If
End SubRequirements
Namespace: Aspose.Words.Reporting
Assembly: Aspose.Words (in Aspose.Words.dll)
See Also
MergeFieldEventArgs Members | Aspose.Words.Reporting Namespace | MergeFieldEventHandler