Foros del Web » Programando para Internet » ASP Clásico »

Sumar los textbox de varios registros usando javascritpt

Estas en el tema de Sumar los textbox de varios registros usando javascritpt en el foro de ASP Clásico en Foros del Web. Buenas. Estoy desarrollando una aplicación para mí, en la que desplego mediante asp varias facturas. Selecciono varias de esas facturas, y escribo en los textbox ...
  #1 (permalink)  
Antiguo 06/08/2013, 10:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Sumar los textbox de varios registros usando javascritpt

Buenas.
Estoy desarrollando una aplicación para mí, en la que desplego mediante asp varias facturas.
Selecciono varias de esas facturas, y escribo en los textbox la cantidad recibida.
Ejemplo:

Juan paga 25 euros mes agosto
Juan paga 25 euros mes septiembre
Juan paga 25 euros mes octubre

Pues bien, tiene que darme el total que paga Juan (75). Y si es posible, escribiré cuánto me entrega en metálico, ejemplo: 80 y entonces dirá que la vuelta son 7

Todos esos parámetros luego los paso a otra página dónde hago los apuntes contables automáticamente. Pero necesitaría que previamente se calculara solo.
¿Alguien puede ayudarme?
  #2 (permalink)  
Antiguo 06/08/2013, 11:24
 
Fecha de Ingreso: febrero-2004
Ubicación: Guatemala
Mensajes: 117
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Sumar los textbox de varios registros usando javascritpt

Con javascript lo puedes hacer, investiga jquery y te ayudara bastente.
__________________
Saludos cordiales
Juan Luis Herrera
IT Guatemala CA
  #3 (permalink)  
Antiguo 06/08/2013, 16:29
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

Sé cómo sumar los datos si están ya en la base de datos. Pero no es el caso.
Necesito poner los datos en cada registro, cómo si de un formulario se tratase, y que vaya sumándose el mismo campo conforme lo voy añadiendo, o bien pueda hacer click en un botón que diga Sumar.
He visto multitud de ejemplos, pero ninguno es una suma continua sobre el mismo campo en distintos registros.
Ni siquiera lo he visto así en jquerry.
  #4 (permalink)  
Antiguo 07/08/2013, 03:25
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Sumar los textbox de varios registros usando javascritpt

Esto te servirá para hacerte una idea.
Tendrás que implementar prevención de errores, pero para empezar te sirve.

Código:
<script>
function calcula(){
TOTAL.value = eval(UNO.value)+eval(DOS.value)+eval(TRES.value);
RESTA.value = eval(ENTREGA.value)-eval(TOTAL.value);
}
</script>
<form>
1&nbsp;<input type="text" size="3" id="UNO" value="0" onChange="calcula();"></br>
2&nbsp;<input type="text" size="3" id="DOS" value="0" onChange="calcula();"></br>
3&nbsp;<input type="text" size="3" id="TRES" value="0" onChange="calcula();"></br></br>
TOTAL:&nbsp;<input type="text" size="15" id="TOTAL"></br>
ENTREGA:&nbsp;<input type="text" size="3" id="ENTREGA" value="0" onChange="calcula();"></br>
RESTO:&nbsp;<input type="text" size="15" id="RESTA">
</form>
  #5 (permalink)  
Antiguo 07/08/2013, 10:57
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

Cita:
Iniciado por alpe2000 Ver Mensaje
Esto te servirá para hacerte una idea.
Tendrás que implementar prevención de errores, pero para empezar te sirve.

Código:
<script>
function calcula(){
TOTAL.value = eval(UNO.value)+eval(DOS.value)+eval(TRES.value);
RESTA.value = eval(ENTREGA.value)-eval(TOTAL.value);
}
</script>
<form>
1&nbsp;<input type="text" size="3" id="UNO" value="0" onChange="calcula();"></br>
2&nbsp;<input type="text" size="3" id="DOS" value="0" onChange="calcula();"></br>
3&nbsp;<input type="text" size="3" id="TRES" value="0" onChange="calcula();"></br></br>
TOTAL:&nbsp;<input type="text" size="15" id="TOTAL"></br>
ENTREGA:&nbsp;<input type="text" size="3" id="ENTREGA" value="0" onChange="calcula();"></br>
RESTO:&nbsp;<input type="text" size="15" id="RESTA">
</form>

Gracias, pero éste me serviría si lo que tuviera es un formulario.
Lo que tengo es una base de datos que desplega los registros, así que todos los input tendrían el mismo nombre, por ejemplo: Importe.
Además, siempre se desplegan más de tres registros.
  #6 (permalink)  
Antiguo 07/08/2013, 11:09
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Sumar los textbox de varios registros usando javascritpt

Cita:
Iniciado por RafaelValleT Ver Mensaje
Gracias, pero éste me serviría si lo que tuviera es un formulario.
Lo que tengo es una base de datos que desplega los registros, así que todos los input tendrían el mismo nombre, por ejemplo: Importe.
Además, siempre se desplegan más de tres registros.
No entiendo entonces lo que quieres decir :(

En un post anterior dices que sabes sumar los datos si estan en la DB.

DICES:
Necesito poner los datos en cada registro, cómo si de un formulario se tratase, y que vaya sumándose el mismo campo conforme lo voy añadiendo, o bien pueda hacer click en un botón que diga Sumar.

Yo personalmente no entiendo que quieres decir :(
Si intentas explicarlo de otra forma igual te podemos ayudar mejor.
  #7 (permalink)  
Antiguo 07/08/2013, 11:27
 
Fecha de Ingreso: febrero-2004
Ubicación: Guatemala
Mensajes: 117
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Sumar los textbox de varios registros usando javascritpt

Los inputs no deben tener el mismo nombre. Aclara un poco mas lo que desea realizar.
__________________
Saludos cordiales
Juan Luis Herrera
IT Guatemala CA
  #8 (permalink)  
Antiguo 07/08/2013, 16:02
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

Vuelvo a explicarlo, pero más detalladamente:

Tengo una tabla llamada Facturas, en la que existe un campo llamado ImporteFactura
Lógicamente, ésas facturas tienen unos clientes: Ejemplo Juan.

Juan tiene que pagar 12 facturas anuales, divididas en meses.

Al abrir la tabla en asp filtrando las facturas de Juan, me aparecen sus facturas pendientes (las pagadas desaparecen)
Juan puede venir a pagar la factura de Agosto, pero también puede querer pagar la de Septiembre ya que el mes próximo está de vacaciones y no puede venir.
Así que debo seleccionar de sus facturas pendientes la factura de Agosto y la de Septiembre (lo hago con un chekbox)
Sabemos cuánto paga Juan, ya que el importe de la factura aparece en el campo ImporteFactura, pero Juan puede no haber traído el importe total, así que lo normal es poner un textbox a la derecha que yo pueda rellenar con el importe que Juan me da a mí.
Y me da por ejemplo 25 euros del mes de Agosto, guay. Pero sólo 15 euros del mes de Agosto.
Así que en el campo Cobrado pongo 25 en el registro del mes de agosto, y 15 en el registro del mes de Septiembre. Ambos campos son los mismos, ya que el textbox se desplega con la base de datos.
El java debería sumar el campo Importe del Mes de Agosto (el que relleno manualmente, no el campo que ya tiene ése valor) y el del mes de Septiembre, sumando además los demás meses, pero cuyo valor va a ser 0 (así que no influye)
Si tomara el campo ImporteFactura no habría problema, porque el valor existe antes de desplegar la tabla, y con SQL lo sumo sin problemas. Ahora, sumar los campos que voy escribiendo ya es otra cosa.
He visto muchos ejemplos de formularios sumando el campo 1 y el campo 2, pero esos campos tienen distintos nombres, y el número de campos ya está establecido.
Lo que yo busco es que sume todos los campos de los registros a los que le pongo la cantidad cobrada.
Perdón por extenderme tanto.
  #9 (permalink)  
Antiguo 08/08/2013, 03:10
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Sumar los textbox de varios registros usando javascritpt

Vale.... vuelvo a insistir, en el ejemplo que te puse. Con el y un poco de atención al código, puede hacer lo que necesitas, ni siquiera tienes porque saber nada de JS, pues la sintesis es sencilla.

Te obcecas con que los textbox "son los mismos", NO deben ser los mismos, puedes numerarlos al crear la página perfectamente, cada uno debe tener un nombre distinto. PEj.

<input type="text" size="5" id="ENTREGA_A_CUENTA_ENERO" >
<input type="text" size="5" id="ENTREGA_A_CUENTA_FEBRERO" >

etc...

El resto son operaciones aritmeticas la mar de sencillas.

Saludos,
Alberto
  #10 (permalink)  
Antiguo 08/08/2013, 14:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

Cuando desplegas una base de datos, los campos siempre tienen los mismos nombres.
El cliente lo ve cómo un formulario, pero el servidor lo que tiene es una misma línea.
Aquí el ejemplo cliente:


Aquí el campo Entrega del lado servidor:

<input type="textbox" value="0" name="Importe" id="importe" onchange="Sumar()" size="7" tabindex="1">


Y ya está. Ése campo se va desplegando de modo finito/infinito según el número de registros que haya.
¿Hacer que cambie de nombre con cada desplegué de registro? casí se podría hacer, pero no escribir luego el código js necesario para que haga la operación aritmética.

¿Alguna idea?
  #11 (permalink)  
Antiguo 09/08/2013, 01:46
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Sumar los textbox de varios registros usando javascritpt

Cita:
Iniciado por RafaelValleT Ver Mensaje
Cuando desplegas una base de datos, los campos siempre tienen los mismos nombres.
El cliente lo ve cómo un formulario, pero el servidor lo que tiene es una misma línea.
FALSO, los campos del formulario, tienen el nombre que tu le asignes cuando estás "desplegando" los datos.

Código:
Select * from RECIBOS where PAGADO = 0 and ID_CLIENTE = "4300015D"

do until rs.EOF
//aqui metes el codigo para que te "despliegue" el cliente, vencimiento, concepto, etc,. etc. cuando 
//cuando crees los campos de IMPORTE, PAGADO, RECARGO, PENDIENTE y ENTREGA, tienes que asignales un ID UNICO, ej.
%>
<input type="textbox" value="0" name="Importe_<%=rs.fields("id")%>" id="importe_<%=rs.fields("id")%>" onchange="Sumar()" size="7" tabindex="1"> 

<input type="textbox" value="0" name="Pagado_<%=rs.fields("id")%>" id="Pagado_<%=rs.fields("id")%>" onchange="Sumar()" size="7" tabindex="2"> 
%>

//y así con los textbox que quieras hacer operaciones aritmeticas posteriores con JS. ¿Por que usamos el campo ID para distinguir los TEXTBOX?, pues porque se suponen que son unicos en cada tabla, si en la tabla tienes otro campo "llave" pues lo puedes usar.

  rs.MoveNext
loop
¿Necesitas más ayuda?

Pon el códico con el cual "despliegas" la tabla y vemos como poder ayudarte
  #12 (permalink)  
Antiguo 30/09/2013, 08:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

Acabo de volver a éste tema.. y no es que me obceque. Es que no me funciona
Ni siquiera el ejemplo expuesto me funciona. Introduzco las cantidades en los campos UNO, DOS y TRES pero no se suma nada.
  #13 (permalink)  
Antiguo 30/09/2013, 09:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Sumar los textbox de varios registros usando javascritpt

De todos modos sigo el consejo y pongo todo mi código.

<html>

<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Page-Enter" content="revealTrans(Duration=1.0,Transition=2)">
<meta http-equiv="Page-Enter" content="revealTrans(Duration=1.0,Transition=3)">
<LINK href="estilos2.css" rel=stylesheet>
<title>Cobrar Recibos</title>
<LINK REL="SHORTCUT ICON" href="http://www.administracionesvallesol.es/images/sol.ico">
<meta name=“viewport” content="width=320" />
</head>
<body>



<script>
Sub Sumar()
if IsNumeric(document.all("Importe").value) and IsNumeric(document.all("Importe").value) then
document.all("Total").value = CDbl(document.all("Importe").value) + CDbl(document.all("Importe").value)
else
document.all("Total").value = ""
end if
End Sub

</script>




<font face="Verdana">
<%
Desde=Request("Desde")
Asta=Request("Asta")
Fecha1= Date()
Anio1=(Right(Fecha1,4))
Anio2=Anio1-1
Anio3=Anio1-2
If Desde="" Then
Desde="01/01/"&Anio3
End If
If Asta="" Then
Asta="31/12/"&Anio1
End If

%>


</font>
<table border="0" width="100%" id="table1">

<tr>
<td valign="top">
<table border="0" width="100%" id="table6">
<tr>
<td align="center" bgcolor="#790000" width="50%" valign="top">
<b><font face="Verdana" color="#FFFFFF">COBRAR RECIBOS</font></b></td>
</tr>
<tr>
<td align="center" width="50%" valign="top">
<form method="POST" action="Cobrar2.asp?Comunidad=<%=Request("Comunida d")%>&Com=<%=Request("Com")%>">
<table border="0" width="80%" id="table9">
<tr>
<td bgcolor="#C0C0C0">Desde</td>
<td bgcolor="#C0C0C0">
<input type="text" name="Desde" size="20" value="<%Response.Write""&Desde&""%>"></td>
<td bgcolor="#C0C0C0">Hasta</td>
<td bgcolor="#C0C0C0">
<input type="text" name="Asta" size="20" value="<%Response.Write""&Asta&""%>"></td>
<td bgcolor="#C0C0C0">
Nombre</td>
<td bgcolor="#C0C0C0">
<input type="text" name="Nombre" size="33" value="<%=Request("Nombre")%>"></td>
<td bgcolor="#C0C0C0">
Cuenta</td>
<td bgcolor="#C0C0C0">
<input type="text" name="Cuenta" size="14" value="<%=Request("Cuenta")%>"><input type="submit" value="Filtrar" name="B1"></td>
</tr>
</table>
</form>
<table border="0" width="100%" id="table8">
<tr>
<td width="7%" align="center">
<font face="Verdana" size="2" color="#790000">Cliente</font></td>
<td width="8%" align="center">
<font face="Verdana" size="2" color="#790000">
Fecha</font></td>
<td width="10%" align="center">
<font face="Verdana" size="2" color="#790000">
Concepto</font></td>

<td width="4%">
<p align="center">
<font face="Verdana" size="2" color="#790000">Entrega</font></td>
<td width="2%">
<p align="center">
&nbsp;</td>



<%
Session.LCID = 7178
Com=Request("Com")
Nombre=Request.form("Nombre")
Cuenta=Request.form("Cuenta")
Desde=Request.form("Desde")
Asta=Request.form("Asta")

Desde=month(Desde)&"/"&day(Desde)&"/"&year(Desde)
Asta=month(Asta)&"/"&day(Asta)&"/"&year(Asta)

Set obj_Conn = Server.CreateObject ("ADODB.Connection")
Set obj_RS = Server.CreateObject ("ADODB.RecordSet")
Obj_Conn.Open ""& Com &""
If Nombre="" Then
SQL= "select * From Recibos Where tipo_documento<>'"&"P"&"' And cuenta Like '%" & Cuenta &"%' And Fecha Between #"&Desde&"# And #"&Asta&"# Order By Fecha Asc"
Else
SQL= "select * From Recibos Where tipo_documento<>'"&"P"&"' And Propietario Like '%" & Nombre &"%' And Fecha Between #"&Desde&"# And #"&Asta&"# Order By Fecha Asc"
End If
Obj_RS.Open SQL, Obj_Conn, 3,3
If Obj_Rs.eof Then
%><% Else %>
<%Do While Not Obj_RS.eof%>

<%
iCount = iCount + 1
If iCount Mod 2 = 0 Then
'Color 1
sRowColor = "#FFFFFF"
Else
'Color 2
sRowColor = "#D5C89B"
End If
%>


<script>
function calcula(){
TOTAL.value = eval(UNO.value)+eval(DOS.value)+eval(TRES.value);
RESTA.value = eval(ENTREGA.value)-eval(TOTAL.value);
}
</script>


</tr>
<tr bgcolor="<%Response.Write ""& sRowColor & "" %>">

<td width="7%" align="center">
<font face="Verdana" size="2" color="#790000">




<form method="POST" action="CobrarSi.asp?Comunidad=<%=Request("Comunid ad")%>&Com=<%=Request("Com")%>">


<font face="Verdana" size="2" color="#FFFFFF">


<b>


<input name="Cuenta" size="10" style="border-width:0px; background-color:<%Response.Write ""& sRowColor & "" %>" value="<%=Obj_RS("Cuenta")%>" tabindex="8"></b></font></td>

<td width="8%">
<font face="Verdana" size="2" color="#790000">


<%=Obj_RS("Fecha")%>


</font></td>

<td width="10%">
<font face="Verdana" size="2" color="#790000">


<%=Obj_RS("Concepto")%>


</font>
</td>

<td width="4%">

<input type="textbox" value="0" name="Importe" id="importe<%=Obj_RS("clave_registro")%>" onchange="Calcula()" size="7" tabindex="1">



</td>
<td width="2%">

<p align="center" style="margin-top: 0; margin-bottom: 0">
<font face="Verdana" size="2" color="#790000">


<input type="text" name="clave" size="1" value="<%=Obj_RS("clave_registro")%>" style="visibility: hidden"></font></td>

<%
Obj_RS.MoveNext
Loop
%>

</tr>

<%End If
Set Obj_RS = Nothing
SET Obj_Conn = Nothing
%>
<tr>

</tr>
</table>
<table border="1" width="60%" id="table10">
<tr>
<td>

Fecha</td>
<td>

<input type="text" name="FechaC" size="8" value="<%Response.Write""&Fecha1&""%>"></td>
<td>

<INPUT onclick=javascript: SumarColumna('importe', 1); value="Total" type=button name=button2></td>
<td>

<input type="text" id="total" size="8" name="Total" value="0"></td>
<td>Entrega</td>
<td><input type="text" size="3" id="ENTREGA" value="0" onChange="calcula();"></td>
<td>
Cambio</td>
<td><input type="text" size="15" id="RESTA" name="T1"></td>
<td>Modo</td>
<td>


<SELECT NAME="Modo" size="1" tabindex="1" style="border: 1px solid #0099CC; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<%
Tipo="2"
grado="3"
Com=Request("Com")
Set Modo_Conn = Server.CreateObject ("ADODB.Connection")
Set Modo_RS = Server.CreateObject ("ADODB.RecordSet")
Modo_Conn.Open ""& Com &""
SQL= "Select * From cuentas_contables Where Tipo>("&Tipo&") and grado=("&grado&") Order By Cuenta Asc"
Modo_RS.Open SQL, Obj_Conn, 3,3
If Modo_Rs.eof Then %>
<% Else %>
<%Do While Not Modo_RS.eof%>
<OPTION VALUE="<%=Modo_RS("cuenta")%>"><%=Modo_RS("denomin acion")%></OPTION>


<%
Modo_RS.MoveNext
Loop
%>

<%End If
Modo_Rs.Close
Modo_Conn.Close
Set Modo_RS = Nothing
SET Modo_Conn = Nothing
%>
</SELECT>



</td>
<td>
<input type="submit" value="Cobrar" name="B2" style="float: right"></td></form>
</tr>
</table>
<p>
<%
Obj_RS.MoveNext
Loop
%>

<% End If
Obj_Rs.Close
Obj_Conn.Close
Set Obj_RS = Nothing
SET Obj_Conn = Nothing
%>
</tr>

</td>

</font></td>
</tr>
</table>
</td>
</tr>
</table>

</body>


</html>

Etiquetas: asp, calcular, campo, registros, textbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.