MailMerge - Unable to cast object 'Aspose.Words.Fields.FieldSeparator' to type 'Aspose.Words.Fields.FieldStart'

Hello,
When we perform a mailmerge via MailMerge.ExecuteWithRegions we get the following error:
Unable to cast object ‘Aspose.Words.Fields.FieldSeparator’ to type ‘Aspose.Words.Fields.FieldStart’

We suppose there is a problem with the MS-Word template. But it is dificult to solve the problem. Do you have tips to debug this problem or do you have a solution, please?
Friendly greetings,
Pieter

Hello

Thanks for your inquiry. Could you please attach your input document here for testing? I will check the problem on my side and provide you more information.
Best regards,

Hello Andrey,
Hereby our word template.
Thank you for your cooperation.
Kind regards,
Pieter

Hi Pieter,
Thank you for additional information. I cannot reproduce the problem on my side using the latest version of Aspose.Words (9.5.0). I used the following code for testing:

// Create data set
DataSet ds = new DataSet();
// Create data table1
DataTable table1 = new DataTable("Autorisatie");
table1.Columns.Add("Functie");
table1.Columns.Add("Titel");
table1.Columns.Add("Voorletters");
table1.Columns.Add("Naam");
// Add some dummy data.
table1.Rows.Add(new object[] { "Functie_1", "Titel_1", "Voorletters_1", "Naam_1" });
table1.Rows.Add(new object[] { "Functie_2", "Titel_2", "Voorletters_2", "Naam_2" });
table1.Rows.Add(new object[] { "Functie_3", "Titel_3", "Voorletters_3", "Naam_3" });
// Create data table2
DataTable table2 = new DataTable("Versies");
table2.Columns.Add("Versie");
table2.Columns.Add("Datum");
table2.Columns.Add("Omschrijving");
table2.Columns.Add("Titel");
table2.Columns.Add("Voorletters");
table2.Columns.Add("Achternaam");
// Add some dummy data.
table2.Rows.Add(new object[] { "Versie_1", "Datum_1", "Omschrijving_1", "Titel_1", "Voorletters_1", "Achternaam_1" });
table2.Rows.Add(new object[] { "Versie_2", "Datum_2", "Omschrijving_2", "Titel_2", "Voorletters_2", "Achternaam_2" });
table2.Rows.Add(new object[] { "Versie_3", "Datum_3", "Omschrijving_3", "Titel_3", "Voorletters_3", "Achternaam_3" });
// Create data table3
DataTable table3 = new DataTable("Distributie");
table3.Columns.Add("Instantie");
table3.Columns.Add("Titel");
table3.Columns.Add("Voorletters");
table3.Columns.Add("Achternaam");
table3.Columns.Add("Aantal");
ds.Tables.Add(table1);
ds.Tables.Add(table2);
ds.Tables.Add(table3);
// Add some dummy data.
table3.Rows.Add(new object[] { "Instantie_1", "Titel_1", "Voorletters_1", "Achternaam_1", "Aantal_1" });
table3.Rows.Add(new object[] { "Instantie_2", "Titel_2", "Voorletters_2", "Achternaam_2", "Aantal_2" });
// Open tamplate
Document doc = new Document("Format_VGU.doc");
doc.MailMerge.ExecuteWithRegions(ds);
// Save document
doc.Save("out.doc");

Best regards,

Hi Andry,
We can reproduce the error by the following code:

Document _doc = new Document("Format_VGU.doc");
// Project gegevens.
DataTable table8 = new DataTable();
table8.Columns.Add("pr_omschrijving");
table8.Columns.Add("pr_nummer");
// Add some dummy data.
table8.Rows.Add(new object[] { "Project omschrijving", "PN-01" });
_doc.MailMerge.Execute(table8);
// Regels en voorschriften
DataTable table7 = new DataTable("Regels");
table7.Columns.Add("htmlPv_omschrijving");
// Add some dummy data.
table7.Rows.Add(new object[] { "Regels en voorschriften 1" });
table7.Rows.Add(new object[] { "Regels en voorschriften 2" });
table7.Rows.Add(new object[] { "Regels en voorschriften 3" });
_doc.MailMerge.ExecuteWithRegions(table7);
// Create data table1
DataTable table1 = new DataTable("Autorisatie");
table1.Columns.Add("Functie");
table1.Columns.Add("Titel");
table1.Columns.Add("Voorletters");
table1.Columns.Add("Naam");
// Add some dummy data.
table1.Rows.Add(new object[] { "Functie_1", "Titel_1", "Voorletters_1", "Naam_1" });
table1.Rows.Add(new object[] { "Functie_2", "Titel_2", "Voorletters_2", "Naam_2" });
table1.Rows.Add(new object[] { "Functie_3", "Titel_3", "Voorletters_3", "Naam_3" });
_doc.MailMerge.ExecuteWithRegions(table1);
// Create data table2
DataTable table2 = new DataTable("Versies");
table2.Columns.Add("Versie");
table2.Columns.Add("Datum");
table2.Columns.Add("Omschrijving");
table2.Columns.Add("Titel");
table2.Columns.Add("Voorletters");
table2.Columns.Add("Achternaam");
// Add some dummy data.
table2.Rows.Add(new object[] { "Versie_1", "Datum_1", "Omschrijving_1", "Titel_1", "Voorletters_1", "Achternaam_1" });
table2.Rows.Add(new object[] { "Versie_2", "Datum_2", "Omschrijving_2", "Titel_2", "Voorletters_2", "Achternaam_2" });
table2.Rows.Add(new object[] { "Versie_3", "Datum_3", "Omschrijving_3", "Titel_3", "Voorletters_3", "Achternaam_3" });
_doc.MailMerge.ExecuteWithRegions(table2);
// Create data table3
DataTable table3 = new DataTable("Distributie");
table3.Columns.Add("Instantie");
table3.Columns.Add("Titel");
table3.Columns.Add("Voorletters");
table3.Columns.Add("Achternaam");
table3.Columns.Add("Aantal");
// Add some dummy data.
table3.Rows.Add(new object[] { "Instantie_1", "Titel_1", "Voorletters_1", "Achternaam_1", "Aantal_1" });
table3.Rows.Add(new object[] { "Instantie_2", "Titel_2", "Voorletters_2", "Achternaam_2", "Aantal_2" });
_doc.MailMerge.ExecuteWithRegions(table3);
// Objecten1
DataTable table4 = new DataTable("Objecten1");
table4.Columns.Add("ob_naam");
table4.Columns.Add("ob_geocode");
table4.Columns.Add("ob_vankm");
table4.Columns.Add("ob_totkm");
table4.Columns.Add("ob_omschrijving");
table4.Columns.Add("ob_id");
// Add some dummy data.
table4.Rows.Add(new object[] { "Objectnaam1", "geocode1", "10.000", "20.000", "ObjectOmschrijving1", "ObjectId1" });
table4.Rows.Add(new object[] { "Objectnaam2", "geocode2", "20.000", "30.000", "ObjectOmschrijving2", "ObjectId2" });
table4.Rows.Add(new object[] { "Objectnaam3", "geocode3", "30.000", "40.000", "ObjectOmschrijving3", "ObjectId3" });
_doc.MailMerge.ExecuteWithRegions(table4);
// Planning
DataTable table5 = new DataTable("Planning");
table5.Columns.Add("Omschrijving");
table5.Columns.Add("Start");
table5.Columns.Add("Eind");
// Add some dummy data.
table5.Rows.Add(new object[] { "Planning omschrijving1", "01-01-2011", "31-01-2011" });
table5.Rows.Add(new object[] { "Planning omschrijving2", "02-01-2011", "28-02-2011" });
table5.Rows.Add(new object[] { "Planning omschrijving3", "03-01-2011", "31-03-2011" });
_doc.MailMerge.ExecuteWithRegions(table5);
// Objecten aantallen
DataTable table6 = new DataTable("ObjectenAantallen");
table6.Columns.Add("opc_naam");
table6.Columns.Add("opc_aantal_wkg");
table6.Columns.Add("opc_aantal_wkn");
table6.Columns.Add("opc_aantal_zlf");
// Add some dummy data.
table6.Rows.Add(new object[] { "Object1", "1", "2", "3" });
table6.Rows.Add(new object[] { "Object2", "2", "2", "3" });
table6.Rows.Add(new object[] { "Object3", "3", "2", "3" });
_doc.MailMerge.ExecuteWithRegions(table6);
_doc.Save("out.doc");

With friendly Greetings,
Pieter

Hi
Thank you for additional information. I managed to reproduce the problem on my side. Your request has been linked to the appropriate issue. You will be notified as soon as it is resolved.
As a workaround, you can execute simple mail merge after executing mail merge with regions. In this case code does not throw and exception.
Best regards,

The issues you have found earlier (filed as 22551) have been fixed in this .NET update and in this Java update.


This message was posted using Notification2Forum from Downloads module by aspose.notifier.