Sumar campos de un Grid
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.
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
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
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
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
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.
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.