Como hago para que cuando escriba en una celda de mi grid , en base a eso hacer unos calculos y actualzar otra celda.
Yo hice algo , y funciona mas o menos, osea, si hace los calculos bien, pero visualmente me muestra otros valores, por ejemplo:
Celda_Cantidad Celda_Descuento Celda_Total
4000 0 4000
Si yo tecleo en Celda_Descuento, la cantidad de 50, (le quiero aplicar el 50% de Descuento),
recibio como resultado:
Celda_Cantidad Celda_Descuento Celda_Total
2000 0 2000
Es decir, si me hace los calculos bien pero no me muestra bien los campos, pero si doy click en Celda_Descuento para editarla, me aparece el 50, doy "enter" y se convierte en "0" de vuelta.
Muestro mi codigo, donde esta la logica de eso:
- Código: Seleccionar todo
{
header: "Saldos",
width: 20,
sortable: true,
dataIndex: 'saldo',
summaryType:'sum',
renderer: Ext.util.Format.usMoney
},{
header: "Cond.Cantidad",
width: 22,
sortable: true,
renderer: Ext.util.Format.usMoney,
dataIndex: 'cantidad',
summaryType:'sum',
renderer: function(v, params, record){
if(record.data.porcentaje!="0")
return Ext.util.Format.usMoney((record.data.porcentaje * record.data.saldo) /100);
return Ext.util.Format.usMoney((record.data.cantidad).toFixed(2));
},
editor: new Ext.form.NumberField({
allowBlank: false,
allowNegative: false,
style: 'text-align:left'
})
},
{
header: "Cond.Porcentaje",
width: 15,
sortable: true,
dataIndex: 'porcentaje',
summaryType:'sum',
renderer: function(v, params, record){
if(record.data.cantidad!="0")
return (((record.data.cantidad * 100) /record.data.saldo).toFixed(2));
return (record.data.porcentaje);
},
editor: new Ext.form.NumberField({
allowBlank: false,
allowNegative: false,
style: 'text-align:left'
})
},
{
id: 'neto',
header: "Neto a Reestructurar",
width: 20,
sortable: false,
groupable: false,
renderer: function(v, params, record){
if(record.data.porcentaje!="0")
return Ext.util.Format.usMoney( record.data.saldo - ((record.data.porcentaje * record.data.saldo)/100));
if(record.data.cantidad!="0")
return Ext.util.Format.usMoney( record.data.saldo - record.data.cantidad );
return Ext.util.Format.usMoney(record.data.saldo);
},
dataIndex: 'neto',
summaryType:'totalCost',
summaryRenderer: Ext.util.Format.usMoney
}
],
Muchas gracias,
Saludos desde Monterrey, Mexico.

