FoxPro/Visual FoxPro - Sumar columna en grid

   
Vista:

Sumar columna en grid

Publicado por Mario (49 intervenciones) el 28/01/2008 21:13:52
Buenas tardes,

Se trata de un grid que contiene los datos de clientes, y un segundo grid contiene datos de pedidos. Hay una relación uno a varios establecida entre ambos grid, de forma que cuando se selecciona un elemento del primero aparecen los pedidos en el segundo.

En el segundo grid hay varias columnas calculadas que no dependen de la tabla que controla las otras columnas del grid y que tienen una fórmula en su ControlSource, algo parecido a como se haría en una hoja de cálculo.

Necesitaba realizar sumas de estas columnas y su resultado que aparezca en un Textbox, pero preferiría no tener que sumar la tabla con más de 3000 registros para sumar en realidad 4 o 6 datos. Quisiera sumar solamente los datos que aparecen en pantalla de forma dinámica. ¿Habrá alguna forma sencilla de hacerlo?.

Muchas gracias y un saludo, Mario
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:Sumar columna en grid

Publicado por HELDER B. MARTINEZ (710 intervenciones) el 28/01/2008 21:40:02
Hola Mario,
Puedes hacer lo siguiente:
Por ejemplo:
En el procedimiento de InteractiveChange de la columna o text del grid:

Select tuTabla
SUM NombredeTuCampo TO nTotal
thisform.txtTotal.Value= nTotal
Thisform.Refresh

o asi tambien
*****************
Select tuTabla
SUM Total TO nTotal
thisform.txtTotal.Value= nTotal
Thisform.Refresh

espero te sirva, yo lo hice de esa forma y me funciono.

Saludes Helder Martinez
Honduras C.A
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:Sumar columna en grid

Publicado por Mario (49 intervenciones) el 28/01/2008 21:54:05
Gracias Helder, su idea es buena y de funcionamiento seguro, pero quisiera evitar tener que sumar o calcular campos de toda la tabla cada vez que se modifica un dato en una de las casillas del grid, buscaba alguna solución más directa para las pocas casillas a sumar en el segundo grid.

Saludos, Mario
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:Sumar columna en grid

Publicado por Plinio (7771 intervenciones) el 29/01/2008 04:25:17
Lo que te sugiere Helder esta bien, VFP hace suma de miles de registros en tiempo increible.
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:Sumar columna en grid

Publicado por Mario (49 intervenciones) el 29/01/2008 08:34:15
Muy bien, lo pondré así. Y para hacer varios cálculos simultáneamente en la tabla indexada ¿Qué opción os parece más interesante?:

1.- SUM FOR ...

2.- SEEK (primer registro del intervalo)
SUM WHILE ...

3.- SELECT SUM ... (TO ARRAY...)

Gracias y un saludo, Mario
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:Sumar columna en grid

Publicado por Plinio (7771 intervenciones) el 29/01/2008 09:05:07
Puedes hacer varios calculos a la vez, yo siempre uso CALCULATE. Ver la ayuda.
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:Sumar columna en grid

Publicado por HELDER B. MARTINEZ (710 intervenciones) el 29/01/2008 16:43:18
Hola Mario,

Tambien lo puede hacer por medio de un filtro.

De acuerdo a un dato de la grilla de arriba muestras en la grilla de abajo solos los datos del cliente seleccionado arriba.

Por ejemplo:

Selec tabla
Set filter to alltrim(cCliente)=alltrim(Cliente)
go top
thisform.grdGrilladeAbajo.recordsource="Tabla"
thisform.grdGrilladeAbajo.column1.controlSource="Tabla.Cliente"

Asi no te mostrara todos los campos de la tabla, solo te mostrara los del cliente selecciondao.

Un saludo, Helder
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:Sumar columna en grid

Publicado por Juan Carlos (179 intervenciones) el 01/10/2008 06:50:47
Yo tengo un problema con la suma de un columna en la grid, lo que me sucede es que yo empleo una Tabla temporal, y no puede realizar la suma

Alguien que sepa como sumar una columna empleando un cursor y en k metodo se debe colocar
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:Sumar columna en grid

Publicado por CiD (1 intervención) el 30/06/2014 07:03:48
Me ayudo mucho tu respuesta 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:Sumar columna en grid

Publicado por marcelo  (1 intervención) el 01/02/2008 00:53:52
en el load de tu formulario creas el siguiente cursor
SELECT detallepedido, cantidad, precio, codigopedido, codigocliente FROM pedido;
WHERE codigocliente=0;
INTO CURSOR temp1 READWRITE
SELECT detallepedido, cantidad, precio, codigopedido, codigocliente FROM pedido;
WHERE codigocliente=0;
INTO CURSOR temp2 READWRITE
son iguales uno se llama temp1 y el otro temp2

en el grid 1 (de clientes) en el procedimiento CLICK o AFTERROWCOLCHANGE deberas escribir

thisform.grid2.recordsource="temp2"
SELECT detallepedido, cantidad, precio, codigopedido, codigocliente FROM pedido;
WHERE cocidogcliente=clientes.codigocliente; &&&esto funciona como filtro
( si vas a poner mas condiciones se hace con AND cantidad>100;)
AND cantidad>=100;&&& (ejemplo te mustra todo los pedidos de ese cliente cuya cantidad >=100)
INTO CURSOR temp1 READWRITE
thisform.grid2.recordsource="temp1"

sum precio to thisform.text1.value
sum cantidad thisform.text2.value
clear

para el grid2 en el cuadro de propiedades en recordsource=temp1 y recordsourcetype=alias en columncount = a la cantidad de columnas que quieras mostrar en el grid

cada vez que cliclees en el grid de clientes se refrescara el grid de pedidos y los resultados de todos los pedidos de ese cliente
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

Sumar columna en grid

Publicado por yajaida (1 intervención) el 09/09/2008 00:15:10
buenas tardes

tengo un problemita estoy haciendo una boleta de venta desde otra lista q lo hice de datos del los productos q tengo -
bueno en un grid se tiene q estar agregando el producto q se va seleccionando (nombre producto, precio, catidad, total) mientras voy selecionando y al final mediante un text quiero q sume el total general de todos los productos pedidos

(todo esto dentro de un mismo formulario)en visual foxpro
porfavor ¡¡¡¡¡¡¡¡¡¡¡¡
me podrian ayudar soy muy novato...
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