We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Table mergefield between xero templates and syncfusion templates

With Syncfusion DocIO libraries, is it possible to use 

«TableStart:group» and «TableEnd:group» 
without being inside the

«BeginGroup:group» and «EndGroup:EmployeePayslip» ?

This is because BeginGroup assumes we are dealing with array of objects but currently 

we always have just a single Payslip object but the properties of the object can be an array like below.

Payslip {

       Payments = new List<Payment>,

        Deductions= new List<Deductions>


I have attached xero template for reference.

Attachment: xero_invoice_template_364af29c.zip

5 Replies

SY Sethumanikkam Yogendran Syncfusion Team September 2, 2016 07:21 AM UTC

Hi Customer,

Thank you for contacting Syncfusion support.

We have prepared a sample to meet your requirement. In this sample, we have performed Mail merge with creating an instance of “MailMergeDataTable” by specifying mail merge group name and “IEnumerable” collection with the table start group which doesn’t being inside the begin group.

Please find the sample from below link.

Please refer the below link to know more about how to perform Mail merge using DocIO with objects.

If we misunderstood your requirement, kindly update us with clear description. Kindly modify the attached sample or existing sample of yours and provide us to proceed further to update you with appropriate solution.

Please let us know if you have any other questions.


OV ov September 2, 2016 08:05 AM UTC

Probably I haven't explained well and also I forgot to mention I need to use nested group ExecuteNestedGroup.
Currently we always have one LineItem but its properties can be an array like (payments) (New property added below).
The Payments property will be a table. Is it still possible without BeginGroup/EndGroup field?

I like to achieve the following with the LineItem class definition.

    /// <summary>
    /// Class for LineItem TableGroup
    /// </summary>
    public class LineItem
        public string Description { get; set; }
        public string Quantity { get; set; }
        public string UnitAmount { get; set; }
        public string TaxPercentageOrName { get; set; }
        public string LineAmount { get; set; }
        // new property
        public List<string> Payments {get; set}
        public LineItem(string description, string quantity, string unitAmount, string taxPercentageOrName, string lineAmount)
            Description = description;
            Quantity = quantity;
            UnitAmount = unitAmount;
            TaxPercentageOrName = taxPercentageOrName;
            LineAmount = lineAmount;

Is it still possible to use 

PL Pradeep Loganathan Syncfusion Team September 5, 2016 09:08 AM UTC

Hi Customer,

Thanks for your query.

It is not possible to do the ExecuteNestedGroup without BeginGoup/EndGroup field. Please refer the below link to know more about ExecuteNestedGroup.


Please let us know if you have any other questions.

Best Regards,
Pradeep L

OV ov September 6, 2016 01:13 AM UTC

In my first post I have also attached the Xero's template.

In the template, you can see that they can use 
<TableStart:LineItem> and </TableEnd:LineItem> without being inside the Begin/EndGroup

Do you know how they achieve that? They might also be using a third party libraries too.

I have attached again for reference.

Attachment: xero_invoice_template_70045e71.zip

VR Vijay Ramachandran Syncfusion Team September 6, 2016 12:25 PM UTC

Hi Customer,

Thank you for your update.

Please find the difference between the ExecuteGroup() and ExecuteNestedGroup() methods from following table:

Method Name 
Result will be 
As mentioned earlier you couldn’t do the ExecuteNestedGroup operation without using the BeginGroup\EndGroup because ExecuteNestedGroup method used to perform the mail merge operation between multiple groups. Each group must start with BeginGroup:groupName and end with EndGroup:groupName to identify the different groups. If you want to do the MailMerge operation between multiple groups means you may use ExecuteNestedGroup method otherwise, you can use ExecuteGroup method. This method performs the mail merge operation within single group with multiple records.

We have prepared the sample to illustrate the same, please find the sample from following link:

For more details please refer the following UG link:

So kindly use any of one method ExecuteGroup() or ExecuteNestedGroup() as per your current requirement.

If you are facing any problem while achieving your requirement by using these methods then kindly provide us your expected result document (after performing mail merge operations), so that we could analyse further on your exact requirement and provide you the proper solution at the earliest.

Let us know if you have any concern.

Vijay R

Live Chat Icon For mobile
Up arrow icon