SoloCodigo

Programación Web y Scripting => JavaScript => Mensaje iniciado por: Liliana Lo en Miércoles 16 de Junio de 2004, 23:11

Título: Recuperar Valores Anteriores
Publicado por: Liliana Lo en Miércoles 16 de Junio de 2004, 23:11
:hola: Hola a Todos,
Tengo un problemilla que no he podido solucionar, tengo una grilla con una columna que tiene un chulo que cuando se activa calcula un valor resultado que depende de valores ingresados previamente; el problema es que si el chulo está activo no debo permitir que modifiquen los valores que condujeron al valor resultado porque obviamente éste cambiaría; en ese caso debe preguntar si se quiera volver a calcular el valor resultado con los nuevos datos, pero en caso de que el usuario cancele la acción, debo recuperar el valor anterior con el que se calculó el valor de resultado actual.

Intenté guardar el valor con el OnChange pero luego me dí cuenta que cuando se dispara el evento, ya he perdido el valor que contenía la caja.

Con el OnFocus, me cambia el valor guardado dependiendo de la caja donde me posicione, por lo tanto no me sirve tampoco...

He estado tratando de recalcular basandome en el valor resultado, pero tengo casos en los que el valor no es tanto un calculo como una comparación, por ej. en este caso necesito el anterior valor de semana2:

      semanas(no modif)    semanas2(modif)   semanas3(no modif)     chulo  
               41.5                        26                        41.5                        1
               41.5                        25                        25                           1

si semanas2 < 26, entonces semanas3 = semanas
si semanas2 >= 26, entonces semanas3 = semanas2, en este caso sería fácil recuperar el valor anterior porque sería el mismo de semanas3, pero en el primer caso no lo he podido recuperar....

Si alguien me puede dar una idea se lo agradecería muchísimo...

Gracias de antemano....
Título: Re: Recuperar Valores Anteriores
Publicado por: Avalon en Jueves 17 de Junio de 2004, 11:26
¿Qué es un chulo?
Título: Re: Recuperar Valores Anteriores
Publicado por: Liliana Lo en Jueves 17 de Junio de 2004, 18:18
un chulo es una aprobación, es lo que simbolizan los check box.
Título: Re: Recuperar Valores Anteriores
Publicado por: Avalon en Viernes 18 de Junio de 2004, 10:01
Ok, si lo he entendido bien creo que podrías utilizar 3 variables globales en las cuáles guardas el valor de semanas, semanas2 y semanas3 en el momento en que realizas el cálculo. En caso de que se cancele la acción sólo tendrías que recuperar esos valores.

Código: Text
  1. var semanas = 0, semanas2 = 0, semanas3 = 0;
  2.  
  3.    function calculo() {
  4.       semanas = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  5.       semanas2 = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  6.       semanas3 = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  7.    }
  8.  
  9.    function cancelar() {
  10.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas;
  11.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas2;
  12.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas3;
  13.    }
  14.  


A ver si te sirve esa opción.

Salu2,
Avalon
Título: Re: Recuperar Valores Anteriores
Publicado por: Liliana Lo en Viernes 18 de Junio de 2004, 16:40
Lo que no me queda claro es el evento...además, siguiendo con el ejemplo, si yo almaceno en las 3 variables los valores anteriores del primer registro...en que momento guardo los valores de los otros registros, la cantidad de registros que puedo tener es ilimitada....si te entendí bien, no podría yo determinar cuantas variables temporales necesitaría para almacenar los valores anteriores....
Saludos y Gracias..
Título: Re: Recuperar Valores Anteriores
Publicado por: Avalon en Viernes 18 de Junio de 2004, 17:22
Bueno, es que en tu primer mensaje no mencionas que quieras guardar los valores de ilimitados registros sinó únicamente del último registro para poder volver a esa situación en caso de que se cancele la acción. Si lo que quieres es guardar los valores de todos los registros puedes hacerlo con arrays.

Código: Text
  1. var semanas = new Array();
  2. var semanas2 = new Array();
  3. var semanas3 = new Array();
  4.  
  5. var indice = 0;
  6.  
  7.    function calculo() {
  8.       semanas[indice] = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  9.       semanas2[indice] = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  10.       semanas3[indice] = document.NOMBREFORMULARIO.NOMBRETEXT.value;
  11.       indice++;
  12.    }
  13.  
  14.    function cancelar() {
  15.       indice--;
  16.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas[indice];
  17.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas2[indice];
  18.       document.NOMBREFORMULARIO.NOMBRETEXT.value = semanas3[indice];
  19.   }
  20.  

Cuando haces el cálculo incrementas el índice y cuando cancelas la acción lo decrementas para obtener los valores guardados anteriormente.


Salu2,
Avalon
Título: Re: Recuperar Valores Anteriores
Publicado por: Liliana Lo en Martes 22 de Junio de 2004, 16:56
Entiendo...voy a probar con tu idea de los vectores....Muchas Gracias....luego te cuento cómo me fué....