Sumar campos de un Grid

loginsistemas
13 de Julio del 2003
hola. quiero sumar campos de un grid y almacenarlos en un textbox o algo parecido es decir me gustaria que el resultado ya aparezca en el textbox, gracias.

Chema Gonzalez
13 de Julio del 2003
Tengo la siguiente idea Loginsistemas.
Tienes que recorrer todas las filas del Grid y acumular el contenido del campo que quieres sumar a una variable, en el siguiente código:

En el evento init del control Grid
Local nSuma && Crear variable local
Select Modulos && Seleccionar tabla o cursor
Go Top && Inicio de la tabla o cursor

** Recorrer toda la tabla o cursor
Do While !Eof()
nSuma = nSuma + modulos.costo && Acumular campo
Skip
EndDo
Go Top && Inicio de la tabla

Thisform.label2.caption = Tran(nSuma,"C$ ##,###.##")
Thisform.label2.alignment = 1 && Alineacion derecha

Si no eviarme crreo electronico a mi direccion

Alex
13 de Julio del 2003
Een RecordSource del grid, tenes o bien que el origen es una tabla o bien un cursor.
Si es asi, solo tenes que sumar los campos de esa tabla o cursor con una recorrida. El colega sugiere un "do While !EOF()", para la recorrida. En lo personal, prefiero un SCAN.... ENDDO

Ahora bien, supongamos que los datos ingresados en la columna del Grid, son en tiempo de ejecucion (como cuando estas haciendo una factura). Si es asi, hace lo siguiente:
En el valid del text correspondiente a la columna que deseas sumar, vas generando un suma parcial de lo ingresado y lo guardas en una variable, inicialmente declarada en el init del form.

Evento init

suma = 0

Evento Valid del Text

suma = suma + this.value

Si haces la suma desde afuera (como por ejemplo en el refresh del form), es lo mismo, con la diferencia de que referencias al objeto con su nombre plenamente qualificado....

suma = suma + thisform.grid1.columnax.text.value

Todo dependerá de como estes implementando tu rutina.

Intento se claro.....si no fué asi, informame un poco mas, y te mando un ejemplo concreto.

Saludos


Alex
13 de Julio del 2003
Een RecordSource del grid, tenes o bien que el origen es una tabla o bien un cursor.
Si es asi, solo tenes que sumar los campos de esa tabla o cursor con una recorrida. El colega sugiere un "do While !EOF()", para la recorrida. En lo personal, prefiero un SCAN.... ENDDO

Ahora bien, supongamos que los datos ingresados en la columna del Grid, son en tiempo de ejecucion (como cuando estas haciendo una factura). Si es asi, hace lo siguiente:
En el valid del text correspondiente a la columna que deseas sumar, vas generando un suma parcial de lo ingresado y lo guardas en una variable, inicialmente declarada en el init del form.

Evento init

suma = 0

Evento Valid del Text

suma = suma + this.value

Si haces la suma desde afuera (como por ejemplo en el refresh del form), es lo mismo, con la diferencia de que referencias al objeto con su nombre plenamente qualificado....

suma = suma + thisform.grid1.columnax.text.value

Todo dependerá de como estes implementando tu rutina.