BUG 7490 Problema con las grillas

Al hacer uso de una formula para operaciones entre columnas de una grilla el resultado siempre es redondeado a pesar de que los valores contengan decimales.
This commit is contained in:
norahmollo
2012-12-17 14:03:45 +00:00
parent 8d0e0b1dbe
commit a44efaa6fa

View File

@@ -1152,23 +1152,30 @@ var G_Grid = function(oForm, sGridName){
for (i = 0; i < aFields.length; i++) { for (i = 0; i < aFields.length; i++) {
if (!isNumber(aFields[i])) { if (!isNumber(aFields[i])) {
oAux = this.getElementByName(aAux[1], aFields[i]); oAux = this.getElementByName(aAux[1], aFields[i]);
//sAux = sAux.replace(new RegExp(aFields[i], "g"), "parseFloat(G.cleanMask(this.getElementByName(" + aAux[1] + ", '" + aFields[i] + "').value().replace(/[$|a-zA-Z\s]/g,'') || 0, '" + (oAux.sMask ? oAux.sMask : '')
sAux = sAux.replace(new RegExp(aFields[i], "g"), "parseFloat(G.cleanMask(this.getElementByName(" + aAux[1] + ", '" + aFields[i] + "').value().replace(/[$|a-zA-Z\s]/g,'') || 0, '" + (oAux.sMask ? oAux.sMask : '') sAux = sAux.replace(new RegExp(aFields[i], "g"), "parseFloat(G.cleanMask(this.getElementByName(" + aAux[1] + ", '" + aFields[i] + "').value().replace(/[$|a-zA-Z\s]/g,'') || 0, '" + (oAux.sMask ? oAux.sMask : '')
+ "').result.replace(/,/g, ''))"); + "').result.replace(/,/g, ''))");
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + aFields[i] + "]')) { oContinue = false; }"); eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + aFields[i] + "]')) { oContinue = false; }");
} }
} }
eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }"); eval("if (!document.getElementById('" + aAux[0] + '][' + aAux[1] + '][' + oField.sFieldName + "]')) { oContinue = false; }");
var swReal=0;
if (oContinue) { if (oContinue) {
//we're selecting the mask to put in the field with the formula //we're selecting the mask to put in the field with the formula
for (i = 0; i < this.aFields.length; i++) { for (i = 0; i < this.aFields.length; i++) {
if(oField.sFieldName==this.aFields[i].sFieldName) { if(oField.sFieldName==this.aFields[i].sFieldName) {
maskformula =this.aFields[i].oProperties.mask; maskformula=this.aFields[i].oProperties.mask;
if(this.aFields[i].oProperties.validate=='Real')
swReal=1;
} }
} }
if(maskformula!=''){ if(maskformula!=''){
maskDecimal=maskformula.split(";"); maskDecimal=maskformula.split(";");
if(maskDecimal.length > 1) { if(maskDecimal.length > 1) {
maskDecimal=maskDecimal[1].split("."); maskDecimal=maskDecimal[1].split(".");
} else { } else {
@@ -1180,8 +1187,10 @@ var G_Grid = function(oForm, sGridName){
} else { } else {
maskToPut=0; maskToPut=0;
} }
} else { } else {
if(swReal==1)
maskToPut=2;
else
maskToPut=0; maskToPut=0;
} }