Hace algún tiempo atrás, les expliqué cómo calcular el valor de un campo a partir de otros dos utilizando javascript (lo pueden leer aquí).
A raíz de esto, han surgido una serie de solicitudes para que les explique como hacer lo mismo pero en una forma tabular.
Por esta razón, hoy les quiero dejar aquí la manera de hacerlo, no sin antes dejarles algunos detalles a considerar sobre el tema.
En primer lugar, los campos f01, f02 y f03 a que se hace referencia en esta publicación, son sensitivos a mayúsculas y minúsculas, por lo que se deben utilizar tal y como se hace aquí.
Segundo, estos campos corresponden a cada uno de los campos editables que contiene la forma tabular, contando de manera ordenada y de izquierda a derecha.
Habiendo dicho esto, aquí esta la forma de realizar el campo.
Supongamos que tenemos en la forma tabular tres campos: Cantidad, Precio y Total y se desea calcular la columna Total a como Cantidad multiplicada por el Precio.
Lo que debes hacer es:
1. Agregar en la propiedad Encabezado HTML de la página el siguiente código Javascript:
<script type="text/javascript"> function calcularTotal(pThis) { var vRow = pThis.id.substr(pThis.id.indexOf('_')+1); html_GetElement('f03_'+vRow).value = parseInt(html_GetElement('f01_'+vRow).value, 10) * parseInt(html_GetElement('f02_'+vRow).value, 10); } </script>
2. En la propiedad Atributos de elemento, del elemento Precio de la forma tabular, agregar lo siguiente:
onchange="calcularTotal(this);"
Con esto, luego de ingresar el valor del campo Precio, se ejecutará el cálculo de la columna Total.
Espero que les sea de utilidad.
Muchas gracias por la pronta respuesta, esta genial este sitio, les mando muchos y pronto regresaré con algunas otras dudas que tengo 🙂
Hola, tengo algunos problemas, para la variable que lleva el número de fila. traté de imprimirla y no me sale nada.
function calcular()
{
var vRow = pThis.id.substr(pThis.id.indexOf(‘_’)+1);
alert (vRow);
}
Si en lugar de la variable pongo un mensaje, el mensaje si sale, por eso pensé que el problema estaba en la variable.
claro esto ya cuando estoy creado una fila en el detalle.
Ya se cual era mi error, todo lo que pusiste esta bien, me faltaba el parametro, muchas gracias
Hola, super claro y útil tu post. Es posible subir un archivo de Excel (xls/xlsx) con datos en cada HOJA (3 HOJAS) leer y cargar desde el mismo archivo los datos de cada hoja.
GrACIAS
Q xvrrr funciono super genial, pero me gustaria saber si tambien se puede llamar a la BD por ejemplo cuando se de tab a un campo que te llene otros 2