Suma de valores en un Grid

06/12/2004 - 22:22 por Andys Bohorquez | Informe spam
Amigos:

Mi inquietud es la de saber si puedo sumar los valores de
la columna "Total" de un grid que contiene las ventas de
articulos antes de guardar el registro.

Me explico:
Tengo un formulario donde se agregan los registros
detalles de una venta, con su total, y abajo tengo un
text1 que muestra el total venta, pero solo lo muestra
cuando guardo el registro, lo estoy haciendo asi:

SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh

Con este cursor me suma el total de las ventas que
regitros pero solo lo hace al guardar, yo quiero que
calcule antes de guardar.

Agradeceria cualquier ejemplo


Gracias por todo.



Andys Bohorquez
Cartagena-Colombia

Preguntas similare

Leer las respuestas

#6 Andys Bohorquez
12/12/2004 - 16:14 | Informe spam
Ana:
Como lo harias.
Si tubieras un formulario llamado detalles ventas asi:
Numventa001
Detalles.1..Articulo...cantidad...precio..total.

al final en un text=Totalventa.(Suma de los totales)

Quiero que cada vez que agregue un detalle se actualice el
Text=Totalventa.

Por favor me ayudas con un ejemplo.

Gracias.

Andys Bohorquez
Cartagena-Colombia
Hola Andys:

Si estás trabajando con vistas por un lado y haciendo el


sum de los campos
de la tabla, pues sólo te actualizará cuando guardes los


cambios.
¿O no te he entendido bien?


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:073901c4dfa6$5801ba90$
Ana:
llamo el metodo:
Thisform.calculatotales
en el Valid de los campos cantidad y precio pero no hace
nada, luego lo llamo al guardar los cambios y si hace el
calculo total.

-Metodo-Calculatotales--
SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh
-
Por favor ayudame con esto
Gracias.




Hola Andys:

Pues en ese caso, en cada control que contenga un dato


recalculable debes
llamar a la rutina de cálculo y entonces verás el valor


refrescado cada vez.
Por ejemplo, en los campos cantidad y precio unitario se


suele re-calcular
el importe, pues de igual modo se llama al método que


devuelve el importe
total que se muestra digamos, en un textbox aparte.


Saludos,

Ana
www.amby.net


"Andys Bohorquez" escribió


en el mensaje
news:0f7601c4de1a$a5765c50$
Hola Ana.
Trabajo directamente con las tablas buffer nivel 5, y
cuando creo losregistros detalles de la venta, el calculo
total dice que es cero.luego guardo y le doy calcular
total entoces si me da el calculo total.

Lo que yo quiero es que recalcule el total cada vez que




el
usuario agregue un nuevo detalle a la venta, sin tener




que
guardar los cambios.

Gracias.

Andys Bohorquez
Cartagena-Colombia


Hola Andys:

No te entiendo bien, ¿deseas re-calcular? ¿mostrar el


cálculo refrescado?
¿Actualizar los datos en el origen de datos?

El orden de los procedimientos a ejecutar se los puedes


indicar tu.
frmCalculos.Recalcular()
frmCalculos.Refrescar()
frmCalculos.ActualizarOrigenDatos()


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:0fe801c4dbd9$b4911650$
Amigos:

Mi inquietud es la de saber si puedo sumar los valores




de
la columna "Total" de un grid que contiene las ventas






de
articulos antes de guardar el registro.

Me explico:
Tengo un formulario donde se agregan los registros
detalles de una venta, con su total, y abajo tengo un
text1 que muestra el total venta, pero solo lo muestra
cuando guardo el registro, lo estoy haciendo asi:

SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh

Con este cursor me suma el total de las ventas que
regitros pero solo lo hace al guardar, yo quiero que
calcule antes de guardar.

Agradeceria cualquier ejemplo


Gracias por todo.



Andys Bohorquez
Cartagena-Colombia




.





.





.

Respuesta Responder a este mensaje
#7 Ana María Bisbé York
12/12/2004 - 16:40 | Informe spam
Un ejemplo Andys:

En un grid dos columnas que generan re-calcular y una calculable, aquí se
llaman los campos compras y pagos; pero no te preocupes, cualquier campo
numérico que debas re-calcular. Un textbox con la suma de todas. No se
incluye control de errores. No lo mires con lupa, es sólo para que cumpla la
funcionalidad que necesitas.


Saludos,

Ana
www.amby.net

***
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


**************************************************
*-- Form: form1 (c:\pruebas vfp\grid_columna_calculable.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 08/12/04 09:50:08 AM
*
DEFINE CLASS form1 AS form

Top = 0
Left = 0
Height = 276
Width = 413
DoCreate = .T.
Caption = "Ejemplo de columna calculable"
Name = "Form1"

ADD OBJECT grdpagos AS grid WITH ;
ColumnCount = 4, ;
Height = 200, ;
Left = 12, ;
Panel = 1, ;
RecordSource = "PAGOS", ;
RecordSourceType = 1, ;
Top = 12, ;
Width = 384, ;
Name = "grdPagos", ;
Column1.ControlSource = "PAGOS.codcli", ;
Column1.Name = "Column1", ;
Column2.ControlSource = "PAGOS.compras", ;
Column2.Name = "Column2", ;
Column3.ControlSource = "PAGOS.pagos", ;
Column3.Name = "Column3", ;
Column4.ControlSource = "pagos.compras*pagos.pagos", ;
Column4.Width = 115, ;
Column4.Name = "Column4"

ADD OBJECT form1.grdpagos.column1.header1 AS header WITH ;
Caption = "codcli", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column1.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column2.header1 AS header WITH ;
Caption = "compras", ;
Name = "Header1"
ADD OBJECT form1.grdpagos.column2.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column3.header1 AS header WITH ;
Caption = "pagos", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column3.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column4.header1 AS header WITH ;
Caption = "compras*pagos", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column4.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT text1 AS textbox WITH ;
Height = 25, ;
Left = 264, ;
Top = 228, ;
Width = 121, ;
Name = "Text1"

PROCEDURE Refresh
=thisform.actualizaimportetotal()
ENDPROC

PROCEDURE actualizaimportetotal
lnImporteTotal = 0

SUM (pagos.compras*pagos.pagos) TO lnImporteTotal

ThisForm.Text1.Value = lnImporteTotal
ENDPROC

PROCEDURE text1.Valid
=thisform.actualizaimportetotal()
ENDPROC

PROCEDURE text1.Valid
=thisform.actualizaimportetotal()
ENDPROC

ENDDEFINE
*
*-- EndDefine: form1
**************************************************

"Andys Bohorquez" escribió en el mensaje
news:08a101c4e05d$493fb9f0$
Ana:
Como lo harias.
Si tubieras un formulario llamado detalles ventas asi:
Numventa001
Detalles.1..Articulo...cantidad...precio..total.

al final en un text=Totalventa.(Suma de los totales)

Quiero que cada vez que agregue un detalle se actualice el
Text=Totalventa.

Por favor me ayudas con un ejemplo.

Gracias.

Andys Bohorquez
Cartagena-Colombia
Hola Andys:

Si estás trabajando con vistas por un lado y haciendo el


sum de los campos
de la tabla, pues sólo te actualizará cuando guardes los


cambios.
¿O no te he entendido bien?


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:073901c4dfa6$5801ba90$
Ana:
llamo el metodo:
Thisform.calculatotales
en el Valid de los campos cantidad y precio pero no hace
nada, luego lo llamo al guardar los cambios y si hace el
calculo total.

-Metodo-Calculatotales--
SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh
-
Por favor ayudame con esto
Gracias.




Hola Andys:

Pues en ese caso, en cada control que contenga un dato


recalculable debes
llamar a la rutina de cálculo y entonces verás el valor


refrescado cada vez.
Por ejemplo, en los campos cantidad y precio unitario se


suele re-calcular
el importe, pues de igual modo se llama al método que


devuelve el importe
total que se muestra digamos, en un textbox aparte.


Saludos,

Ana
www.amby.net


"Andys Bohorquez" escribió


en el mensaje
news:0f7601c4de1a$a5765c50$
Hola Ana.
Trabajo directamente con las tablas buffer nivel 5, y
cuando creo losregistros detalles de la venta, el calculo
total dice que es cero.luego guardo y le doy calcular
total entoces si me da el calculo total.

Lo que yo quiero es que recalcule el total cada vez que




el
usuario agregue un nuevo detalle a la venta, sin tener




que
guardar los cambios.

Gracias.

Andys Bohorquez
Cartagena-Colombia


Hola Andys:

No te entiendo bien, ¿deseas re-calcular? ¿mostrar el


cálculo refrescado?
¿Actualizar los datos en el origen de datos?

El orden de los procedimientos a ejecutar se los puedes


indicar tu.
frmCalculos.Recalcular()
frmCalculos.Refrescar()
frmCalculos.ActualizarOrigenDatos()


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:0fe801c4dbd9$b4911650$
Amigos:

Mi inquietud es la de saber si puedo sumar los valores




de
la columna "Total" de un grid que contiene las ventas






de
articulos antes de guardar el registro.

Me explico:
Tengo un formulario donde se agregan los registros
detalles de una venta, con su total, y abajo tengo un
text1 que muestra el total venta, pero solo lo muestra
cuando guardo el registro, lo estoy haciendo asi:

SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh

Con este cursor me suma el total de las ventas que
regitros pero solo lo hace al guardar, yo quiero que
calcule antes de guardar.

Agradeceria cualquier ejemplo


Gracias por todo.



Andys Bohorquez
Cartagena-Colombia




.





.





.

Respuesta Responder a este mensaje
#8 Andys Bohorquez
12/12/2004 - 17:04 | Informe spam
Ana.
Gracias...
Probare

Un ejemplo Andys:

En un grid dos columnas que generan re-calcular y una


calculable, aquí se
llaman los campos compras y pagos; pero no te preocupes,


cualquier campo
numérico que debas re-calcular. Un textbox con la suma de


todas. No se
incluye control de errores. No lo mires con lupa, es sólo


para que cumpla la
funcionalidad que necesitas.


Saludos,

Ana
www.amby.net

***
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


**************************************************
*-- Form: form1 (c:\pruebas


vfp\grid_columna_calculable.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 08/12/04 09:50:08 AM
*
DEFINE CLASS form1 AS form

Top = 0
Left = 0
Height = 276
Width = 413
DoCreate = .T.
Caption = "Ejemplo de columna calculable"
Name = "Form1"

ADD OBJECT grdpagos AS grid WITH ;
ColumnCount = 4, ;
Height = 200, ;
Left = 12, ;
Panel = 1, ;
RecordSource = "PAGOS", ;
RecordSourceType = 1, ;
Top = 12, ;
Width = 384, ;
Name = "grdPagos", ;
Column1.ControlSource = "PAGOS.codcli", ;
Column1.Name = "Column1", ;
Column2.ControlSource = "PAGOS.compras", ;
Column2.Name = "Column2", ;
Column3.ControlSource = "PAGOS.pagos", ;
Column3.Name = "Column3", ;
Column4.ControlSource = "pagos.compras*pagos.pagos", ;
Column4.Width = 115, ;
Column4.Name = "Column4"

ADD OBJECT form1.grdpagos.column1.header1 AS header


WITH ;
Caption = "codcli", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column1.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column2.header1 AS header


WITH ;
Caption = "compras", ;
Name = "Header1"
ADD OBJECT form1.grdpagos.column2.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column3.header1 AS header


WITH ;
Caption = "pagos", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column3.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT form1.grdpagos.column4.header1 AS header


WITH ;
Caption = "compras*pagos", ;
Name = "Header1"

ADD OBJECT form1.grdpagos.column4.text1 AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "Text1"

ADD OBJECT text1 AS textbox WITH ;
Height = 25, ;
Left = 264, ;
Top = 228, ;
Width = 121, ;
Name = "Text1"

PROCEDURE Refresh
=thisform.actualizaimportetotal()
ENDPROC

PROCEDURE actualizaimportetotal
lnImporteTotal = 0

SUM (pagos.compras*pagos.pagos) TO lnImporteTotal

ThisForm.Text1.Value = lnImporteTotal
ENDPROC

PROCEDURE text1.Valid
=thisform.actualizaimportetotal()
ENDPROC

PROCEDURE text1.Valid
=thisform.actualizaimportetotal()
ENDPROC

ENDDEFINE
*
*-- EndDefine: form1
**************************************************

"Andys Bohorquez" escribió


en el mensaje
news:08a101c4e05d$493fb9f0$
Ana:
Como lo harias.
Si tubieras un formulario llamado detalles ventas asi:
Numventa001
Detalles.1..Articulo...cantidad...precio..total.

al final en un text=Totalventa.(Suma de los totales)

Quiero que cada vez que agregue un detalle se actualice el
Text=Totalventa.

Por favor me ayudas con un ejemplo.

Gracias.

Andys Bohorquez
Cartagena-Colombia
Hola Andys:

Si estás trabajando con vistas por un lado y haciendo el


sum de los campos
de la tabla, pues sólo te actualizará cuando guardes los


cambios.
¿O no te he entendido bien?


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:073901c4dfa6$5801ba90$
Ana:
llamo el metodo:
Thisform.calculatotales
en el Valid de los campos cantidad y precio pero no hace
nada, luego lo llamo al guardar los cambios y si hace el
calculo total.

-Metodo-Calculatotales--
SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh
-
Por favor ayudame con esto
Gracias.




Hola Andys:

Pues en ese caso, en cada control que contenga un dato


recalculable debes
llamar a la rutina de cálculo y entonces verás el valor


refrescado cada vez.
Por ejemplo, en los campos cantidad y precio unitario se


suele re-calcular
el importe, pues de igual modo se llama al método que


devuelve el importe
total que se muestra digamos, en un textbox aparte.


Saludos,

Ana
www.amby.net


"Andys Bohorquez" escribió


en el mensaje
news:0f7601c4de1a$a5765c50$
Hola Ana.
Trabajo directamente con las tablas buffer nivel 5, y
cuando creo losregistros detalles de la venta, el






calculo
total dice que es cero.luego guardo y le doy calcular
total entoces si me da el calculo total.

Lo que yo quiero es que recalcule el total cada vez que




el
usuario agregue un nuevo detalle a la venta, sin tener




que
guardar los cambios.

Gracias.

Andys Bohorquez
Cartagena-Colombia


Hola Andys:

No te entiendo bien, ¿deseas re-calcular? ¿mostrar el


cálculo refrescado?
¿Actualizar los datos en el origen de datos?

El orden de los procedimientos a ejecutar se los puedes


indicar tu.
frmCalculos.Recalcular()
frmCalculos.Refrescar()
frmCalculos.ActualizarOrigenDatos()


Saludos,

Ana
www.amby.net

"Andys Bohorquez" escribió


en el mensaje
news:0fe801c4dbd9$b4911650$
Amigos:

Mi inquietud es la de saber si puedo sumar los










valores
de
la columna "Total" de un grid que contiene las ventas






de
articulos antes de guardar el registro.

Me explico:
Tengo un formulario donde se agregan los registros
detalles de una venta, con su total, y abajo tengo un
text1 que muestra el total venta, pero solo lo










muestra
cuando guardo el registro, lo estoy haciendo asi:

SELEC Sum(total) as Total1 FROM ventas WHERE
nunfact=ventanum INTO CURSOR Totales.
Thisform.text1.value=Totales.total1
Thisform.refresh

Con este cursor me suma el total de las ventas que
regitros pero solo lo hace al guardar, yo quiero que
calcule antes de guardar.

Agradeceria cualquier ejemplo


Gracias por todo.



Andys Bohorquez
Cartagena-Colombia




.





.





.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida