Sumar dos celdas de un grid
Discussion:
Sumar dos celdas de un grid
(demasiado antiguo para responder)
mcantor
2011-09-30 02:05:06 UTC
Permalink
Raw Message
Hola amigos, tengo este problema. Un cursor que se carga a un grid
con dos columnas para escribir datos numericos y una tercera es el
calculo de la suma de las celdas. todas las 3 columnas son del mismo
cursor.
Como hago para que tan pronto escriba en la primera y segunda celda un
dato automaticamente me de el resultado en la tercer celda?
he probado con la propiedad del grid AfterRowColChange y
afterRowcolchange, funciona ,pero a veces no hace nada, ademas cuando
el usuario se mueve por la grilla los valores se cambian sin sentido.
es decir la culumna resultado aparece con datos errados que no
corresponden a la suma?

gracias de antemano, me pueden escribir a ***@gmail.com
ibania blanco
2011-09-30 17:06:41 UTC
Permalink
Raw Message
Hola amigos, tengo este problema.  Un cursor que se carga a un grid
con dos columnas para escribir datos numericos y una tercera es el
calculo de la suma de las celdas. todas las 3 columnas son del mismo
cursor.
Como hago para que tan pronto escriba en la primera y segunda celda un
dato automaticamente me de el resultado en la tercer celda?
 he probado con la propiedad del grid AfterRowColChange y
afterRowcolchange, funciona ,pero  a veces no hace nada, ademas cuando
el usuario se mueve por la grilla los valores se cambian sin sentido.
es decir la culumna resultado aparece con datos errados que no
corresponden a la suma?
en el valid o lostfocus del ultimo campo tenes que hacer la operacion
por ejemplo

campo1 campo2 esto lo colocas en lostfocus del campo2
whith thisform
.grid1.campo3.value=round(.grid1.campo1.value*.grid1.campo2.value,
2)
endwith

ahora podes hacer algo mas en el campo3 que es del resultado de la
operacion
asi, en el gotfocus
replace next 1 temporal.capo3 with
round(temporal.campo1*temporal.campo2,2)

esto tambien si utilizas un nombre de tabla o cursor llamado temporal,
sino lo sustituyes
mcantor
2011-10-01 00:44:09 UTC
Permalink
Raw Message
Post by ibania blanco
Hola amigos, tengo este problema.  Un cursor que se carga a un grid
con dos columnas para escribir datos numericos y una tercera es el
calculo de la suma de las celdas. todas las 3 columnas son del mismo
cursor.
Como hago para que tan pronto escriba en la primera y segunda celda un
dato automaticamente me de el resultado en la tercer celda?
 he probado con la propiedad del grid AfterRowColChange y
afterRowcolchange, funciona ,pero  a veces no hace nada, ademas cuando
el usuario se mueve por la grilla los valores se cambian sin sentido.
es decir la culumna resultado aparece con datos errados que no
corresponden a la suma?
en el valid o lostfocus del ultimo campo tenes que hacer la operacion
por ejemplo
campo1   campo2  esto lo colocas en lostfocus del campo2
whith thisform
   .grid1.campo3.value=round(.grid1.campo1.value*.grid1.campo2.value,
2)
endwith
ahora podes hacer algo mas en el campo3 que es del resultado de la
operacion
asi, en el gotfocus
replace next 1 temporal.capo3 with
round(temporal.campo1*temporal.campo2,2)
esto tambien si utilizas un nombre de tabla o cursor llamado temporal,
sino lo sustituyes
Gracias... acabo de hacer esto y me funciona bien si opero directo
sobre la tabla, pero en el cursor el codigo bajo las celdas no es
accesado. simplemente parece que no existiera, pero es solo cuando
trabajo sobre el cursor... alguna idea de este extraño
comportamiento? me hara falta poner en T o F alguna propiedad del
grid?
gracias...

Loading...