FoxPro/Visual FoxPro - como puedo sumar una columna y poner el resultado en una label o un textbox

 
Vista:
sin imagen de perfil

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Eduardo (5 intervenciones) el 25/10/2017 23:24:59
Buenas necesito ayuda, estoy creando un sistema de facturación en un form, ya tengo casi todo, pero tengo este inconveniente que un textbox llamado total_general, en la que quiero que a como voy poniendo productos me vaya sumando el total.
En el textbox tengo este codigo en el interactivechange y init

select carrito "así se llama la tabla"
sum(total1) to thisform.total_general.value
thisform.refresh

si me funciona pero cuando pongo otro articulo no me actualiza el total si no es que cierre y abra nuevamente el form.

OCUPO O NECESITO que cuando vaya a poner otro articulo me actualize automanticamente el total.
Gracias.
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Mauricio Antonio (1541 intervenciones) el 26/10/2017 00:24:45
Puedes hacerlo con SUM. Supongo que estas trabajando con cabecera y detalle. En detalle(carrito) es donde vas guardando los articulos que vas ingresando:
SUM (campo.que esta.en.tabla.detalle) FOR codigo.unico.que.relaciona.con.tabla.encabezado TO thisform.total_general.value
Suerte!!
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
sin imagen de perfil

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Eduardo (5 intervenciones) el 26/10/2017 17:12:58
Hola Mauricio,

El codigo no lo entiendo muy bien el codigo :
sobretodo la parte que está subrayada

SUM (campo.que esta.en.tabla.detalle) FOR codigo.unico.que.relaciona.con.tabla.encabezado TO thisform.total_general.value

Es que soy un novato en Foxpro y no conozco mucho de las funciones.

Gracias por 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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Mauricio Antonio (1541 intervenciones) el 27/10/2017 00:53:59
Eduardo, estas trabajando con tablas de encabezado y detalle? Caso contrario, explica como estas facturando.
Si buscas en la ayuda el comando SUM, podras entender mejor.

Totals all or specified numeric fields in the currently selected table.
SUM Command

SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE lExpression2] [TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]

Si estas facturando sin encabezado y detalle, tendras muchos datos redundantes.
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

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Richard Silva (4 intervenciones) el 26/10/2017 00:39:00
Hola Eduardo,

Bueno, creo que la respuesta obvia es crear un método en el form, que podrías llamar ActualizarTotal, por ejemplo.

Vas al método ActualizarTotal y colocas tu código:

select carrito &&"así se llama la tabla"
sum total1 to thisform.total_general.value
thisform.Refresh()

Ejecutas thisform.ActualizarTotal() cada vez que agregas o eliminas un artículo, y tiene la ventaja que puedes llamarlo desde el InteractiveChage() y desde el Init() del textbox, aunque parece poco apropiado hacerlo allí.


Espero sea de ayuda,

Saludos desde Venezuela.
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
sin imagen de perfil

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Eduardo (5 intervenciones) el 26/10/2017 16:50:50
Hola Richard,

¿Donde sugieres poner el total de los productos? en un label o textbox.....

Es que soy un novato en Foxpro y no conozco mucho de las funciones.

Hice todo lo que puso usted, pero me sale un error como este:

property actualizartotal is not found

ya busqué errores de ortografía y igual sale el mismo error
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

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Richard Silva (4 intervenciones) el 28/10/2017 17:42:23
Eduardo,

Entiendo que tienes un textbox total_general, y creo entender que tienes un grid donde se van agregando/eliminando artículos por facturar.

Creo además entender que tienes otro form donde agregas/eliminas/modificas la cantidad de artículos a facturar.

La idea general es que cada vez que agregas/eliminas/modificas artículos, ejecutes un método que recalcule los totales y los refleje en el label o textbox. En lo personal, ocupo un textbox para mostrar totales por la facilidad y por las ventajas inherentes (me permite usar la opción "Copiar" CTRL+C sin mucho esfuerzo, ;-J ), pero es una cuestión de gustos.

Sugerí que crearas un Método en el Form, al que podrías llamar ActualizarTotal, por ejemplo. A veces, con las Propiedades, Eventos y Métodos de un form alcanza para realizar nuestro trabajo, pero es muy posible que un form no tenga las funciones (Métodos) o variables (Propiedades) que uno necesita para un determinado proceso, por eso a los forms podemos agregarle métodos y propiedades, que son algo así como sus funciones y variables propias. Sólo existen para ese form, a menos que lo hagamos sobre una clase, pero esa es otra historia y la intención es simplificar.

Para crear un método: Abres tu formulario, vas al Menú Form, clic en la opción New Method, y verás un pequeño formulario esperando que le indiques el nombre del método a crear. En Name colocas ActualizarTotal, y siempre es bueno indicar una breve descripción de lo que hace el método, para eso se usa Description.

Una vez creado el método, vas a la ventana Properties y haces doble clic sobre el nombre del método que recién has creado. Verás que VFP se queda esperando a que agregues el código que necesitas allí.

Agregas tu código, y cada vez que retornes de agregar/eliminar/modificar cantidades de artículos, ejecutas Thisform.ActualizarTotal()

Adelante, no te rindas!

Espero sea de ayuda,

Saludos.
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
sin imagen de perfil

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Eduardo (5 intervenciones) el 28/10/2017 19:44:00
Gracias por la información, la tomaré en cuenta y ver si me funciona
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Mauricio Antonio (1541 intervenciones) el 30/10/2017 01:41:02
Eduardo, el SUM que te mencione, no tienes que crear ningun metodo sino que lo ingresas en el metodo ACTIVATE y te funcionara, te lo puedo asegurar, yo asi lo uso y me funciona...
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
sin imagen de perfil

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Eduardo (5 intervenciones) el 01/11/2017 23:24:24
si me funcionó, gracias por tu ayuda y las demás personas de este tema
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

como puedo sumar una columna y poner el resultado en una label o un textbox

Publicado por Abel (286 intervenciones) el 30/10/2017 00:42:34
Prueba meter el mismo código:

select carrito
sum(total1) to thisform.total_general.value

dentro del Metodo Refresh del Form y no en InteractiveChange ni Init.
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