Suma interactiva en columna de Grid

1,368 views
Skip to first unread message

Miguel Castillo

unread,
Oct 22, 2012, 10:52:11 PM10/22/12
to comunidad de vfp9
hola Saludo a todos

Tengo un grid con tres columnas
en las dos primeras tengo numeros y en la tercera quiero que al ir ingresando los numeros estos me den el total de multiplicarlos
entre si cuando termino de ingresar el segundo

Como sera de realizarlo

me explico mejor 
tengo un grid en donde voy a ingresar los valores de una factura ingreso la cantidad y el valor unitario y quiero que
automaticamente salga el total que propiedades debo modificar en la columna tercera.


Gracias 

Miguel Castillo
Santander España

FidelJ

unread,
Oct 23, 2012, 8:41:28 AM10/23/12
to publice...@googlegroups.com
Supongamos que la grilla tiene un cursor llamado mfactu con "Cantidad" N(12,2), "Precio" n(12,2),"Renglon" n(12)

Agrega un método de usuario, p. ej. "Recalcula"
Método recalcula
SELECT MFACTU
nrec=REcno()
replace renglon with Round(cantidad * Precio , 2)
sum all Renglon to nGravado   && Calcula el total gravado que se muestra en algún TextBox del form.
nImpIva=Round(nGravado * nTasaIva/100 , 2)
nTotFac=nGravado + nImpiva
if nrec#0
   go nrec  && devuelve el puntero donde estaba antes del sum.
endif
Thisform.Grilla.Refresh

En LostFocus Text1 de la columna de Cantidad
select mfactu
REPLACE CANTIDAD WITH THIS.VALUE
Thisform.Recalcula()

En LostFocus Text1 de la columna de Precio
SELECT MFACTU
REPLACE PRECIO WITH THIS.VALUE
Thisform.ReCalcula()

La columna que tiene "Renglon" debe ser Readonly=.T.


Si no quieres que cada vez que pase sobre la columna precio y cantidad se dispare REcalcula, puedes crear una propiedad de usuario.
Thisform.addproperty("PREVIO",0)
En GotFocus del text1 de la columna cantidad y precio
Thisform.Previo=this.value
Luego, en los LostFocus iría:
if this.Value # thisform.previo
     select mfactu
     ** etc....
endif

Fox Learner

unread,
Oct 23, 2012, 10:32:55 AM10/23/12
to publice...@googlegroups.com
Tienes 3 columnas dices..

1. Cantidad
2. Valor Unitario
3. Total

Sin oop, puedes llamar al evento keypress sea de la columna valor unitario o de la columna total.

El código lo pones en el Keypress del Text1 de cualquiera de las 2 ultimas columnas.

Código del Keypress del Text1 de la columna Valor Unitario:

IF LASTKEY()=13
NODEFAULT

Thisform.grid1.column3.text1.value = Thisform.grid1.column1.text1.value + Thisform.grid1.column2.text1.value

ENDIF

Esa sería la idea básica. Ya si vas a utilizar formatos de presentación revisa las propiedades correspondientes como Format y sus máscaras o la función Transform.

Recuerda que el código que se pone en los keypress de los text1 de las columnas solo funcionará con el teclado. Para que funcione con el mouse debes usar otros métodos.

Saludos!


Fox Learner

unread,
Oct 23, 2012, 10:34:28 AM10/23/12
to publice...@googlegroups.com
Perdon, no era suma sino multiplicación jeje

Thisform.grid1.column3.text1.value = Thisform.grid1.column1.text1.value * Thisform.grid1.column2.text1.value

Norberto

unread,
Oct 23, 2012, 11:14:01 AM10/23/12
to publice...@googlegroups.com
En la columna importe pones:  Bound .F.
                                             ControlSource ROUND(cantidad*precio,2)
                                             DynamicInputMask    "@R ###,###,###.##"
                                             Enabled  .F.
                                             ReadOnly  .T.

En txtImporte                   
                                             Enabled  .F.
                                             ReadOnly  .T.
                                             When Event   RETURN .F.

El lunes, 22 de octubre de 2012 23:52:14 UTC-3, Mike711511 escribió:

Claudio Luna

unread,
Oct 23, 2012, 11:22:55 AM10/23/12
to publice...@googlegroups.com
Miguel

Acá te paso la información de como hacer factura de Rafael Copquin un artículo excelente.
Creo que es lo que te va a ayudar a hacer lo que necesitas.

Saludos

Claudio




--
 
 
 

Hacer facturas en VFP_Copquin.pdf

Fox Learner

unread,
Oct 23, 2012, 11:42:24 AM10/23/12
to publice...@googlegroups.com
Bonito artículo Ing. Claudio Luna. Como quisiera tener mucho tiempo para aprender todo eso de la OOP con Fox.

Saludos!

Miguel Castillo

unread,
Oct 23, 2012, 8:44:37 PM10/23/12
to comunidad de vfp9
Gracias Norberto
Gracias Claudio 
a ver como me va ya les comento


Saludos a todos

Miguel Castillo
Santander España


Date: Tue, 23 Oct 2012 12:22:55 -0300
Subject: Re: [vfp] Re: Suma interactiva en columna de Grid
From: thom...@gmail.com
To: publice...@googlegroups.com

Miguel

Acс te paso la informaciєn de como hacer factura de Rafael Copquin un artэculo excelente.
Creo que es lo que te va a ayudar a hacer lo que necesitas.

Saludos

Claudio




El 23 de octubre de 2012 12:14, Norberto <gmno...@gmail.com> escribiє:
En la columna importe pones: аBound .F.
а а а а а а а а а а а а а а а а а а а а а а аControlSource ROUND(cantidad*precio,2)
а а а а а а а а а а а а а а а а а а а а а а аDynamicInputMask а а"@R ###,###,###.##"
а а а а а а а а а а а а а а а а а а а а а а аEnabled а.F.
а а а а а а а а а а а а а а а а а а а а а а аReadOnly а.T.

En txtImporte а а а а а а а а аа
а а а а а а а а а а а а а а а а а а а а а а аEnabled а.F.
а а а а а а а а а а а а а а а а а а а а а а аReadOnly а.T.
а а а а а а а а а а а а а а а а а а а а а а аWhen Event а RETURN .F.

El lunes, 22 de octubre de 2012 23:52:14 UTC-3, Mike711511 escribiє:
hola Saludo a todos

Tengo un grid con tres columnas
en las dos primeras tengo numeros y en la tercera quiero que al ir ingresando los numeros estos me den el total de multiplicarlos
entre si cuando termino de ingresar el segundo

Como sera de realizarlo

me explico mejorа
tengo un grid en donde voy a ingresar los valores de una factura ingreso la cantidad y el valor unitario y quiero que
automaticamente salga el total que propiedades debo modificar en la columna tercera.


Graciasа

Miguel Castillo
Santander Espaёa

--
а
а
а


--
 
 
 

Miguel Castillo

unread,
Oct 23, 2012, 9:10:19 PM10/23/12
to comunidad de vfp9
Perfecto es lo que necesitaba
funciona muy bien 



Date: Tue, 23 Oct 2012 08:14:01 -0700
Saludos
Norberto el txtimporte para que es sera para sacar el total de la suma?
y la propiedad when Event no esta solo esta wen , escribo en codigo return .f. en esa propiedad

Si txtimporte no da el total de la suma en cual lo saco

la otra parte del grid funciono perfecto muchas gracias
 
Salu2

Miguel Castillo
Santander España








--
 
 
 

Miguel Castillo

unread,
Oct 23, 2012, 9:24:58 PM10/23/12
to comunidad de vfp9
Gracias Norberto ya entendi donde poner lo de txtimporte y se utiliza para que inhabilite esa columna y el cursor no salte a esta columna
Muchas gracias

Estoy estudiando la ayuda de Claudio para sacar el valor total en un textBox






Saludos a todos
Miguel Castillo


Date: Tue, 23 Oct 2012 12:22:55 -0300
Subject: Re: [vfp] Re: Suma interactiva en columna de Grid
From: thom...@gmail.com
To: publice...@googlegroups.com

Miguel

Acс te paso la informaciєn de como hacer factura de Rafael Copquin un artэculo excelente.
Creo que es lo que te va a ayudar a hacer lo que necesitas.

Saludos

Claudio


El 23 de octubre de 2012 12:14, Norberto <gmno...@gmail.com> escribiє:
En la columna importe pones: аBound .F.
а а а а а а а а а а а а а а а а а а а а а а аControlSource ROUND(cantidad*precio,2)
а а а а а а а а а а а а а а а а а а а а а а аDynamicInputMask а а"@R ###,###,###.##"
а а а а а а а а а а а а а а а а а а а а а а аEnabled а.F.
а а а а а а а а а а а а а а а а а а а а а а аReadOnly а.T.

En txtImporte а а а а а а а а аа
а а а а а а а а а а а а а а а а а а а а а а аEnabled а.F.
а а а а а а а а а а а а а а а а а а а а а а аReadOnly а.T.
а а а а а а а а а а а а а а а а а а а а а а аWhen Event а RETURN .F.

El lunes, 22 de octubre de 2012 23:52:14 UTC-3, Mike711511 escribiє:
hola Saludo a todos

Tengo un grid con tres columnas
en las dos primeras tengo numeros y en la tercera quiero que al ir ingresando los numeros estos me den el total de multiplicarlos
entre si cuando termino de ingresar el segundo

Como sera de realizarlo

me explico mejorа
tengo un grid en donde voy a ingresar los valores de una factura ingreso la cantidad y el valor unitario y quiero que
automaticamente salga el total que propiedades debo modificar en la columna tercera.


Graciasа

Miguel Castillo
Santander Espaёa

--
а
а
а


--
 
 
 

Miguel Castillo

unread,
Oct 23, 2012, 9:28:14 PM10/23/12
to comunidad de vfp9
Gracias Fox Learner

voy a probar de esta forma a ver como me sale 


les agradezco a todos por su amabilidad

Saludos

Miguel Castillo
Santander España


Date: Tue, 23 Oct 2012 07:32:55 -0700
From: thenewin...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Suma interactiva en columna de Grid
--
 
 
 

Miguel Castillo

unread,
Oct 23, 2012, 10:00:13 PM10/23/12
to comunidad de vfp9
Gracias Fidel J

Vamos a ver que tal me va 

Muy agradecido

Saludos

Miguel Castillo
Santander España


Date: Tue, 23 Oct 2012 05:41:28 -0700
From: fjch...@gmail.com

To: publice...@googlegroups.com
Subject: [vfp] Re: Suma interactiva en columna de Grid

--
 
 
 
Reply all
Reply to author
Forward
0 new messages