Problema con grid

Hola experto¡
Tengo un formulario "Ventas4" y dentro un cursor "ventatemporal" que muestro en un grid1, con un botón llamo a un form "Cantidad" que ingresa valores al cursor y actualiza el grid.
Lo que necesito hacer es poner un "Text1" que sume esa columna multiplicada por el precio de la misma tabla y lo hice así:
select ventatemporal
sum(ventatemporal.cantidad*precio) to vventa
thisform.text1.value=vventa
de esta manera hace la suma del producto, pero no actualiza el text1, no se en que evento ponerlo para que al agregar una cantidad me actualice el valor del text1
de antemano mil gracias por su ayuda.

1 respuesta

Respuesta
1
Espero poder ayudarte:
En el click del botón que llama a cantidad haces:
do form cantidad
** y aca tu sum
El form cantidad debe ser modal (en windowType)
Pero como siempre, me permito sugerirte algo.
El sum anda bien, pero tiene la contra que deja tu puntero del cursor en EOF() y te mueve todo el grid y te queda horrible porque parece que se borró todo y tu cliente va a decir.."uy!! se me borró todo" y por lo menos el susto se va a llevar..
Yo te recomiendo hacer lo siguiente:
Dimension total(1)
total=0
select sum(cantidad*precio) from ventaTemporal INTO ARRAY TOTAL
thisform.text1.value=total(1)
Algún colega dirá "porque dimension arriba y después la inicializa si el select hace todo?????" y yo respondo que el diablo sabe más por viejo que por diablo.
Te cuento que el select inicializa el array, es cierto, pero SIEMPRE QUE TENGA REGISTROS el cursor. Entonces, para evitar errores, mejor sumarle dos lineas al código.
Por último, si esto lo vas a usar seguido, te conviene crear un método en tu formulario. Algo como "actualiza" y después llamas siempre al mismo método (thisform. Actualiza)
Espero haberte ayudado y si es así, por favor cerrá la pregunta.
Muchas gracias por tu respuesta.
Sin querer me aclaraste otra duda que tenia con respecto a porque se desconfiguraba todo el formulario.
Pero sigo teniendo el mismo problema, que cuando ejecuto el formulario, no tengo problemas, pero si corro todo el programa con el prg de inicio o en el ejecutable me sale que no se encontró el objeto "Ventas4"
Estuve leyendo acerca del tema y veo que hay que usar parameter para pasar información entre formularios o algo así, pero no logro entenderlo del todo.
De antemano mil gracias por toda la ayuda que me estas brindando, me esta siendo de mucha ayuda.
Hagamos todo paso a paso:
En el click del botón que llama al formulario "cantidad"
do form cantidad
dimension total(1)
total=0
select sum(cantidad*precio) from ventaTemporal INTO ARRAY TOTAL
thisform.text1.value=total(1)
En el formulario "cantidad" (que debe ser modal en windowType)
En el INIT del form
thisform.cantidad.value=ventasTemporal.cantidad    &&suponiendo que se llama cantidad el textbox)
En el botón "Aceptar" del form
Se le ventasTemporal
replace cantidad with thisform.cantidad.value
Thisform. Release
Es muy importante que el form "cantidad" sea modal porque sino el evento click del botón que lo llama seguirá de largo y esto no funcionaría.
En ningún momento llamamos al formulario por su nombre, porque todas las operaciones las hacemos con thisform que es la referencia al formulario actual.
Si quieres preguntame lo de los parmetros en otra pregunta y con gusto te contesto, algo como "pasar parámetros entre formularios"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas