I use grid to create a list of related positions (products in invoice)
I have footer with #stat_total for few columns. When I add a new empty row and fill it with some data, stat function does not recalculate. I have to add additional empty row for it to calculate. Every change in any row does not recalculate stats. I tried to use refreshMath() function but I get the error, that there is no such function.
var gridPozycje = cellPozycje.attachGrid();
gridPozycje.setIconsPath('./codebase/imgs/');
gridPozycje.setHeader(["Produkt/Usługa","JM","Ilość","Cena netto","Wart. netto","Stawka VAT","Wart. VAT","Wart. brutto"]);
gridPozycje.setColTypes("co,ed,edn,edn,ron,coro,ron,ron");
gridPozycje.attachFooter(["","#cspan","#cspan","Razem","#stat_total","-","#stat_total","#stat_total"],['','','',"text-align: right; font-weight: bold","text-align: right;","text-align: center;","text-align: right;","text-align: right;"]);
var comboProducts = gridPozycje.getCombo('0');
comboProducts.put('1','Usługa księgowa');
comboProducts.put('2','Rozliczenie');
var comboVat = gridPozycje.getCombo('5');
comboVat.put('23','23%');
comboVat.put('8','8%');
gridPozycje.setColAlign('left,left,right,right,right,center,right,right');
gridPozycje.enableResizing('true,true,false,false,true,true,true,true');
gridPozycje.setColSorting('str,str,int,int,str,str,int,int');
gridPozycje.setInitWidths('*,50,50,80,80,80,80,85');
gridPozycje.setNumberFormat('0,000.00',3, ',', ' ');
gridPozycje.setNumberFormat('0,000.00',4, ',', ' ');
gridPozycje.setNumberFormat('0,000.00',6, ',', ' ');
gridPozycje.setNumberFormat('0,000.00',7, ',', ' ');
gridPozycje.setDateFormat('%Y-%m-%d');
gridPozycje.attachEvent('onEditCell', function(stage, rId, cId, nVal, oVal) {
if(stage == 2 && cId == 0 && nVal != oVal) {
if(nVal == 1) {
gridPozycje.cells(rId,1).setValue('szt.');
gridPozycje.cells(rId,2).setValue('1');
gridPozycje.cells(rId,3).setValue('120');
gridPozycje.cells(rId,5).setValue('23');
gridPozycje.cells(rId,4).setValue('120');
gridPozycje.cells(rId,6).setValue(120*0.23);
gridPozycje.cells(rId,7).setValue(120 + gridPozycje.cells(rId,6).getValue());
} else if (nVal == 2) {
gridPozycje.cells(rId,1).setValue('szt.');
gridPozycje.cells(rId,2).setValue('1');
gridPozycje.cells(rId,3).setValue('220');
gridPozycje.cells(rId,5).setValue('8');
gridPozycje.cells(rId,4).setValue('220');
gridPozycje.cells(rId,6).setValue(220*0.08);
gridPozycje.cells(rId,7).setValue(220 + gridPozycje.cells(rId,6).getValue());
}
}
if(stage == 2 && (cId == 2 || cId == 3) && nVal != oVal) {
gridPozycje.cells(rId,4).setValue(gridPozycje.cells(rId,3).getValue() * gridPozycje.cells(rId,2).getValue());
gridPozycje.cells(rId,6).setValue(gridPozycje.cells(rId,4).getValue() * (gridPozycje.cells(rId,5).getValue() / 100));
gridPozycje.cells(rId,7).setValue(gridPozycje.cells(rId,4).getValue() + gridPozycje.cells(rId,6).getValue());
}
if(stage == 2 && cId == 5 && nVal != oVal) {
gridPozycje.cells(rId,6).setValue(gridPozycje.cells(rId,4).getValue() * (gridPozycje.cells(rId,5).getValue() / 100));
gridPozycje.cells(rId,7).setValue(gridPozycje.cells(rId,4).getValue() + gridPozycje.cells(rId,6).getValue());
}
return true;
})
gridPozycje.init();