FoxPro/Visual FoxPro - suma de columna en grid

   
Vista:

suma de columna en grid

Publicado por eduardo (139 intervenciones) el 28/10/2009 18:01:17
Hola :

Tengo un form en el cual muestro una tabla con valores en una columna
en el mismo form tengo un text en el cual muestro la suma de esa columna .
para eso ,el el evento activate del form tengo lo siguiente:

local aaa
aaa=0
sum(deuda) to aaa (deuda es el campo de la tabla del grid)

thisform.text1.value=aaa
thisform.refresh

Lo que quiero lograr es que cuando modifico el valor de algun registro que tengo en la columna deuda se me vaya actualizando el total que muestra en el text sin necesidad de salir del form y ejecutarlo nuevamente.

hay manera de lograr esto ? desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:suma de columna en grid

Publicado por Cesar (63 intervenciones) el 28/10/2009 21:39:19
Hola Eduardo,
Lo que tienes que hacer es crear un metodo en tu formulario. Ahi mueves el codigo que tienes en evento activate hacia el metodo que creastes. Luego cuando actualizes el valor del registro llamas al metodo para actualizar el total de la deuda.

Metodo : suma
Muevo el codigo que esta en el evento activate.
aaa=0
sum(deuda) to aaa (deuda es el campo de la tabla del grid)
thisform.text1.value=aaa
thisform.refresh

En el evento Show escribo lo siguiente:
thisform.suma
Esto para que cuando se muestre el formulario sume la deuda y coloque el total en la caja de texto.

Boton: Grabar(Donde grabo las actualizaciones de los registros)
Grabo las actualizaciones.
LLamo al metodo suma.
thisform.suma

Saludos desde Peru,
Cesar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma de columna en grid

Publicado por eduardo (139 intervenciones) el 29/10/2009 02:53:09
gracias Cesar:

defini el metodo suma,puse el codigo que sigue:

aaa=0
sum(deuda) to aaa (deuda es el campo de la tabla del grid)
thisform.text1.value=aaa
thisform.refresh

luego llame el metodo suma dentro de show .
cuando lo ejecuto me dice: que text1 es un miembro desconocido.
sabes porque puede ser el error? gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma de columna en grid

Publicado por Chucho (23 intervenciones) el 29/10/2009 13:03:35
Hola: perdón por meterme, pero ¿probaste en poner ese sum en el valid (por ejemplo) de la caja de texto de la columna en cuestión?. No sé pero me parece más fácil. De última, crear el método que propone César y llamarlo desde el valid que mencioné, si es que es necesario sumar de nueva en otras ocasiones.

Lo que si le agregaría a la rutina del sum, es guardar el registro actual antes del sum y luego restaurarlo, porque el sum va a mover el puntero de registro.

SELECT LATABLA
nReg = Reccount()
SUM ...etc.
GOTO nReg

Saludos

Javier (Jujuy-Argentina)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma de columna en grid

Publicado por eduardo (139 intervenciones) el 29/10/2009 15:07:59
gracias por los aportes de informacion!.
les paso como lo solucione por si alguno le parece buena la alternativa:

defini el metodo sumatoria:

local fff
select cta
reg=recno()
sum(deuda) to fff

go reg
thisform.text1.value=fff
thisform.refresh

despues en el evento afterrowcolchange del grid puse:

thisform.sumatoria
thisform.refresh

por lo que vi anda perfecto.

saludos desde argentina y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma de columna en grid

Publicado por Chucho (23 intervenciones) el 29/10/2009 23:44:11
Hola me alegro que la cosa funcione.
De todas formar fijate que el AftwerRowColChange se ejecuta cuando cambias de fila o columna en el grid, entonces si solo te desplazas por el grid (teclas o mouse) me parece que no es conveniente que el método se invoque cada vez que cambies de fila o columna. Pero como te dije al principio, si funciona y tenés pocos registros....bien ahí...

"Primero que funcione...después lo mejoramos" :)

Suerte

Saludos..
Javier (Jujuy-Argentina)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma de columna en grid

Publicado por eduardo (139 intervenciones) el 30/10/2009 01:26:58
retomè el mensaje anterior y me di cuenta que habia interpretado mal .
puse el metodo suma dentro del textbox del form .por eso no me anduvo!
lo puse en el text de la columna y que do ok .mas optimo que lo del afterrowcolchange.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar