Insert Before Form Field Does Not Work

Hi All,
It seems that insert AFTER form field works and that is greate, however we need to insert a bullet before a formfield and that is not working.
bullet <>
bullet <>
etc…
We need the bullets to show only if the fields are there any insight?
Thanks

Hi
Thanks for your request. Every form field has bookmark that is associated with it. So you can move cursor of DocumentBuilder to start or to end of this bookmark and insert some text for example. If you need insert bullets before form fields then you can try using the following code.

// Open document
Document doc = new Document(@"Test134\in.doc");
// Create DocumentBuilder
DocumentBuilder builder = new DocumentBuilder(doc);
// Loop through all formfields in the focument
foreach (FormField field in doc.Range.FormFields)
{
    // Move cursor to bookmarks that is associated with form field
    builder.MoveToBookmark(field.Name);
    // Aply bullet 
    builder.ListFormat.ApplyBulletDefault();
}
// Save output document
doc.Save(@"Test134\out.doc");

I hope this could help you.
Also please provide me your document and code for reviewing.
Best regards.

We are creating a document in word and then running a merge using SQL and the document can be X.doc this time and Y.doc next time and Z.doc next time.
We have:
bullet field1
bullet field2
bullet field3
To recreate this create a document add some form fields edit the form fields and click the insert text before checkbox and add a bullet.
Run the doc and then have field3 be blank the bullet is still there and should not be.
Insert after works like it should if the field is blank don’t insert the text.
Thanks for all your help

Hi
Please attach sample document here and provide me your code. I will investigate this issue and provide you more information.
Best regards.

Document doc = new Document(cstrForm);
MakeTable(dr); // From your Samples
for (int i = 0; i < myDataTable.Rows.Count; i++)
{
    doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(HandleMergeImage);
    DataRow dataRow = myDataTable.Rows[i];
    doc.MailMerge.Execute(dataRow);
}
doc.MailMerge.DeleteFields();

Fields 40,42,44,46 have the insert before bullet.
Thanks for all your help

Also it seems that in word when a formfield is blank with an insert before the line below moves up, however Aspose.Words does not have this working/capability?
field1
field2
field3
If field2 is blank field3 should move up?
Thanks again for all your help!

Hi
Thanks for additional information.

  1. There are no form fields in your document. These fields are called MergeFields.
  2. You can add bullets during mail merge using MergeField event handler.
  3. You can specify whether remove paragraphs that contained mail merge fields with no data using RemoveEmptyParagraphs property.
    Please see the following code.
public void Test139()
{
    // Open template document
    Document doc = new Document(@"Test139\in.doc");
    // Prepare data
    string[] names = { "field40", "field42", "field44", "field46" };
    string[] values = { "val1", "val2", "val3", "val4" };
    // Add MergeField event handler
    doc.MailMerge.MergeField += new MergeFieldEventHandler(MailMerge_MergeField139);
    // Specifies whether paragraphs that contained mail merge fields with no data should be removed from the document. 
    doc.MailMerge.RemoveEmptyParagraphs = true;
    // Execute mail merge
    doc.MailMerge.Execute(names, values);
    // Save document
    doc.Save(@"Test139\out.doc");
}
void MailMerge_MergeField139(object sender, MergeFieldEventArgs e)
{
    if (e.FieldName == "field40" || e.FieldName == "field42" || e.FieldName == "field44" || e.FieldName == "field46")
    {
        // Apply bullets
        e.Field.Start.ParentParagraph.ListFormat.ApplyBulletDefault();
    }
}

I hope this could help you.
Best regards.

Thank You for your speedy response.
You are correct MergeFields sorry about the terminology.
Is there no way to have the Mergefield be driven off the ‘Insert Before?’ from the document?
It seems like the ‘Insert After’ works fine.
Thanks again

Hi
Thanks for your request. It is not quite clear for me what you mean. During mail merge all merge fields are replaced with its values. Could you please attach your result document and document created by Word (that will show me what is wrong or what you would like to achieve).
Best regards.

if (e.FieldName == "field40" && e.FieldValue != null & e.FieldValue.ToString() != "")

Apply bullet
This does not seem to work? How would I apply to bullet to a field ONLY if it has a value?
Thanks

Hi
Thanks for additional information. In my code I specify

doc.MailMerge.RemoveEmptyParagraphs = true;

So paragraphs that contained mail merge fields with no data will be removed from document. Have you tried using my code?
Could you please attach your output document for reviewing?
Best regards.