Hello Helical Team,
I am using Helical Insight (HI) 4.1 GA version with the Grid Table view.
When I inject custom JavaScript to add a total row at the bottom of the grid (to calculate and display total values for columns), the pagination functionality does not work properly.
Below is the JavaScript code that I am injecting:
hi_container.set(“postFetch”, function(c) {
var responseData = c.get(“responseData”);
var totalTargetSales = 0;
var totalCYSales = 0;
var acknowledgement = 0;
var totalLYSales = 0;
var growth = 0;
var totalCYSSales = 0;
var totalnoofmr = 0;
var tatalnoofmonth = 0
var totalpcpm = 0;
var totalreturn = 0;
var totalnetsales = 0;
var rowCount = responseData.data.length;
for (var i = 0; i < responseData.data.length; i++) {
totalTargetSales += Number(responseData.data[i]["TARGET SALES"]) || 0;
totalCYSales += Number(responseData.data[i]["CY SALES"]) || 0;
acknowledgement += Number(responseData.data[i]["ACH %"]) || 0;
totalLYSales += Number(responseData.data[i]["LY SALES"]) || 0;
growth += Number(responseData.data[i]["GRW %"]) || 0;
totalCYSSales+= Number(responseData.data[i]["CY S SALES"]) || 0;
totalnoofmr += Number(responseData.data[i]["NO OF MR"]) || 0;
tatalnoofmonth += Number(responseData.data[i]["NO OF MONTH"]) || 0;
totalpcpm += Number(responseData.data[i]["PCPM"]) || 0;
totalreturn += Number(responseData.data[i]["RETURN VALUE"]) || 0;
totalnetsales += Number(responseData.data[i]["NET SALES"]) || 0;
}
//var avgACH = acknowledgement / rowCount;
var totalACH = (totalCYSales / (totalTargetSales || 1)) * 100;
//var avgGRW = growth / rowCount;
var totalGRW = ((totalCYSales - totalLYSales) / (totalLYSales || 1)) * 100;
var totalNETSALES = totalCYSales - totalreturn;
var totalPCPM = (totalCYSales / totalnoofmr) / tatalnoofmonth;
responseData.data.push({
"PRODUCT":"TOTAL",
"TARGET SALES": totalTargetSales,
"CY SALES": totalCYSales,
"ACH %": totalACH.toFixed(2),
"LY SALES": totalLYSales,
"GRW %": totalGRW.toFixed(2),
"CY S SALES": totalCYSSales.toFixed(0),
"NO OF MR": totalnoofmr,
"NO OF MONTH": tatalnoofmonth,
"PCPM":totalPCPM.toFixed(2),
"RETURN VALUE":totalreturn,
"NET SALES":totalNETSALES
});
c.set("responseData", responseData);
});
After adding this script, the pagination does not behave as expected.
Could you please let me know if this approach is supported and if there is a recommended way to add a total row without impacting pagination?