suma de columna en un grid

1,876 views
Skip to first unread message

migaldra

unread,
Jan 30, 2011, 10:45:06 AM1/30/11
to Comunidad de Visual Foxpro en Español
Hola
He armado un Grid con 4 columnas, en la cual solo se puede modificar
los valores en una de ellas, lo cual va hacer que el total cambie. Yo
he colocado un textbox con el total, pero cuando cambio algun valor en
esta columna , no varia el total, como puedo hacer de cantidad?
He utilizado la propiedad destroy en la colmmna pero no pasa nada.
Espero su ayuda
saludos
Miguel

Programas ToP

unread,
Jan 30, 2011, 10:57:07 AM1/30/11
to publice...@googlegroups.com
Usa el valid del text1 de la columna

Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribuci�n que puedes hacer al medio ambiente.
Please consider your environmental responsibility and commitment before printing.


El 30/01/2011 10:45 a.m., migaldra escribi�:

Walter R. Ojeda Valiente

unread,
Jan 30, 2011, 11:30:52 AM1/30/11
to publice...@googlegroups.com
Hola

Debes usar el método LOSTFOCUS() o el método VALID() del Textbox que está en la columna del grid que te interesa.

Saludos.

Walter.

migaldra

unread,
Jan 30, 2011, 1:53:46 PM1/30/11
to Comunidad de Visual Foxpro en Español
Hola
he puesto que calcule el total nuevamente, y a continuacion le puse un
refresh, pero el nuevo valor no aparece en el textbox
Saludos
Miguel
> > Miguel- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

GeoSys Diseño de Software

unread,
Jan 30, 2011, 2:27:36 PM1/30/11
to publice...@googlegroups.com
Si el TextBox lo tienes insertado en el formulario:

thisform.text1.Value = xxxsuma
thisform.text1.Refresh

Saludos

Anthony Contreras Peralta

Costa Rica.

Carlos Yohn (A.G.P.)

unread,
Jan 31, 2011, 3:18:33 AM1/31/11
to Comunidad de Visual Foxpro en Español
En el evento gotfocus del textbox de la columna:
thisform.valor_anterior = this.value

En el evento valid del textobox de la columna:
dodefault()
thisform.total.value = thisform.total.value - thisform.valor_anterior
+ this.value
thisform.total.refresh()

Moises Daniel Vilchez Tello

unread,
Jan 31, 2011, 9:40:13 AM1/31/11
to publice...@googlegroups.com
ojala te sirva, te pego un ejemplo como lo trabajamos aqui en la Of.

en la grilla, en el evento valid del text 
thisform.grid1.column4.text1.valid


SELECT thisform.dbgrid1.dbcursor+' '

xactive = thisform.dbgrid1.getrow()

GO TOP
SCAN 
lc_dcto = dcto
vResul = (cant * prec) 
vDscto = (vResul * lc_dcto) /100
vTotal = vResul - vDscto
REPLACE dcto WITH lc_dcto
replace importe WITH vtotal 
ENDSCAN 
SUM (importe) TO vtotal1
vValor = (vtotal1 / ((limpu / 100)+1))
vIgv = (vtotal1 - vValor )
thisform.Lbl_tot_val_vta.Value = round( vValor , 2)
thisform.Lbl_tot_igv.Value = round( vIgv , 2)
thisform.Lbl_tot.Value = round( vtotal1 ,2)

Miguel Canchas

unread,
Jan 31, 2011, 9:48:03 AM1/31/11
to publice...@googlegroups.com

El scan que realizas es para un campo dentro del mismo cursor/tabla ¿?? Se podría reemplazar con un sencillo UPDATE de sql, y respecto a las variables de suma, se puede cambiar con otro sencillo sum to thisfom.text1.value.

 

Bueno algunas sencilleces nomas… J

 

MK

Moises Daniel Vilchez Tello

unread,
Jan 31, 2011, 4:11:07 PM1/31/11
to publice...@googlegroups.com
bueno, gracias por las apreciaciones, pero creo q utilizar ahi un UPDATE, no seria lo mas recomendable, ya q trabajo con excepción Commit y rollback, lo del sum campo to objeto, lo coloco en variable ya q utilizo esta para mas calculos, saludos

Jairo Miranda

unread,
Feb 1, 2011, 5:22:41 PM2/1/11
to publice...@googlegroups.com
En el Gotfocus, del text1

This.value = Factura.precio * Factura.cantidad

Espero sirva

Jairo

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Programas ToP
Enviado el: Domingo, 30 de Enero de 2011 10:57
Para: publice...@googlegroups.com
Asunto: Re: [vfp] suma de columna en un grid

Usa el valid del text1 de la columna

Saludos cordiales

Manuel Tovar Ruiz
Barranquilla - COLOMBIA

Antes de imprimir este correo piensa en la contribución que puedes hacer al


medio ambiente.
Please consider your environmental responsibility and commitment before
printing.

Fcocibaeno

unread,
Feb 1, 2011, 8:31:41 PM2/1/11
to Comunidad de Visual Foxpro en Español
Saludos,
Estoy asumiendo que de las cuatro columnas, la ultima (columna 4) es
la que tiene el total, la anterior (columna 3), tiene el precio y la
columna 2 tiene la cantidad y suponiendo que es algo parecido a
precio, cantidad, valor y que el valor = cantidad*precio..Entonces
haria lo siguiente
en el valid del text1 de la columna de la cantidad (columna 2).

this.parent.parent.column4.text1.value =
this.value*this.parent.parent.column3.text1.value

la column3 es el precio y la column4 es el valor total..

Asi lo uso y funciona en un grid de facturacion..

!1 suerte !!

Yvan GMAIL

unread,
Feb 1, 2011, 8:35:47 PM2/1/11
to publice...@googlegroups.com
Hola en mi caso..
Yo aplico esto en el interactivechange del textbox del grid.. pero trabajo
con el cursor enlazado al grid
p.e.
supongamos que estoy en la columna precio

Sele micursor
* me aseguro antes
Replace precio with this.value
* y calulo.. o si deseo este codigo le pongo en un metodo. Para evitasr
repetir el codigo.

Replace importe with precio*cantidad

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Fcocibaeno
Enviado el: Martes, 01 de Febrero de 2011 08:32 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: suma de columna en un grid

Diana Resendiz

unread,
Aug 3, 2013, 9:00:18 PM8/3/13
to publice...@googlegroups.com

Douglas Sánchez

unread,
Aug 3, 2013, 10:02:27 PM8/3/13
to publice...@googlegroups.com
Es ejemplo lo adjunte de nuevo.  renombrarlo .txt x rar.

Saludes
Doug


El 3 de agosto de 2013 20:01, Douglas Sánchez <dougl...@gmail.com> escribió:
Estas seria una de las formas fijates en las propiedades de cada columna ejemplo tomado de vfp9.

Saludes

Douglas



--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476



--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476
Calculo_en_grid_.txt

Angel Dario Rodriguez

unread,
Aug 4, 2013, 7:03:53 AM8/4/13
to publice...@googlegroups.com
no se entiende


2013/8/3 Douglas Sánchez <dougl...@gmail.com>

Felipe Araoz Ramos

unread,
Aug 4, 2013, 4:32:53 PM8/4/13
to publice...@googlegroups.com
has probado si en el evento lostfocus del texto que que esta dentro de la columna de tu grid, colocas algo asi:

Miform.mytext.value=Sum(tutabla.catidad*tutabla.valor) 
Thisform.refresh

Estoy armando algo así para el ingreso de un comprobante contable y a mi si me funciona.

Saludos

Felipe
--
Felipe Araoz Ramos
RPM #941990605 / 941990605
RPC 992760385
NXT  822*9500 / 998229500

Jairo Miranda

unread,
Aug 5, 2013, 9:53:16 AM8/5/13
to publicesvfoxpro
En el texbox  el procedimiento Gotfocus  coloca   This.Value = Datalle.precio * detalle. cantidad
 
JM

Curacao SanMiguel Centro

unread,
Oct 23, 2015, 12:16:47 PM10/23/15
to Comunidad de Visual Foxpro en Español
tengo un problema, utilizo SUM campo1*campo2 to thsiform.text.value pero aparece un tipo de barra en la parte inferior del formulario y cada vez que se ejecuta esa sentencia se va deformando el formulario

pueden ayudarme..

Saúl Piña

unread,
Oct 23, 2015, 12:53:43 PM10/23/15
to Comunidad de Visual Foxpro en Español
Yo tengo dos opciones para solucionar esto:

1. que inmediatamente despues de SUM() escribas CLEAR, por ejemplo

SUM(Mi_campo) to x1
CLEAR

2. Que la propiedad del Formulario "AlwaysOnTop" = .T.

Saludos.

integral

unread,
Oct 23, 2015, 2:31:09 PM10/23/15
to Comunidad de Visual Foxpro en Español

Estimado Douglas Sánchez :

Te comento que en el archivo que adjuntas no aparece opcion alguna que muestre acerca de la suma de una columna dentro de un grid...

Quizas tt equivocaste de archivo... 

atte.,

INTEGRAL

Daniel Sánchez

unread,
Oct 23, 2015, 3:39:47 PM10/23/15
to Comunidad de Visual Foxpro en Español
En el load del formulario debes poner

set echo off

junto con tus demás set de configuración, fecha, delete on, talk y otros necesarios para cuando se trabaja en formularios de sesión de datos privados.

Saludos
--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Douglas Sánchez

unread,
Oct 23, 2015, 5:21:31 PM10/23/15
to publice...@googlegroups.com
Hola Integral

Envié mal el archivo en su momento, allá por el año 2013, no puse ._rar, lo elimino gmail el adjunto. si aun le interesa puedo hacer otro.

Aunque básicamente mis cálculos yo los hago del cursor temporal de la Grid, jamas hago sum sobre mi temporal de grid.

Por ejemplo si estoy en el registro 4 y aplico un sum, esto me va mandar al final, mientras que si creas un método calculo y luego le pones sum a este cursor no te afecta la posición en donde estas ubicado.  ejemplo si tengo una grid y micursor se llama Tempo,  hago un select sum(campo1), sum(campo2)  from tempo into cursor tmpsuma  y los resultado los pongo en los textbox 

Saludes


Douglas

integral

unread,
Oct 23, 2015, 7:37:29 PM10/23/15
to Comunidad de Visual Foxpro en Español

Estimado amigo DANIEL :

Sobre el tema solo me percate del error del archivo adjunto, pero seria interesante si pudieras adjuntar alguno que solucione la consulta del colega que pregunto o sirva de consulta para los que tengan el mismo problema 

Saludos,

INTEGRAL

El domingo, 30 de enero de 2011, 10:45:06 (UTC-5), MIGUEL escribió:
Reply all
Reply to author
Forward
0 new messages