Skip to main content

This week we worked on a project to create revised T4s for a Sage 300 customer and their staff.

Our Sage 300 customer discovered that they have been calculating two benefits as taxable income when they should not have been. To address this we have two options.

Option 1 is to create new benefits and process adjustments for all employees for the 10 years they are eligible to revise the T4s. Because this would have been a lot of work we went with Option 2 which is to modify the T4 form in Crystal Reports.

To modify the T4 form in Crystal Reports we need to be able to separate the amounts that should not have been taxable. The challenge we faced is the table containing the T4 data is a temporary table that is populated by Sage 300 when you run the create T4 process.


This would have been easy to do if it was all or nothing because we could have just subtracted out the value of Box 40 but some benefits needed to be retained and others removed. The data we need to be able to change the values we print in Box 14 and Box 40 is found in the employee Year-To-Date table.

Since Sage 300 controls what data is sent into the temporary table we had to find another way to add this extra data to the table then match the tax year and employee to what we were printing on the form. Once we connected the data table we had to ensure that we can total the two benefits that should not have been taxed but only for each employee and each tax year.

With the data selected and linked to the T4 table we could create a field with the value we need to deduct. Since the T4 report is a set of sub reports we created the field in main report and passed it to each of the sub reports as a parameter. Then, in each of the sub reports we created formulas to subtract the parameter value from the Box 14 and Box 40 amounts.

Once that was done we printed the employee and CRA T4 forms to PDF for all years. Now the revised T4s are ready to be distributed to the staff and submitted to CRA.