Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: freddyjose00 en 17 Abril 2010, 17:55 pm



Título: Sumar totales y luego restarlos
Publicado por: freddyjose00 en 17 Abril 2010, 17:55 pm
Hola, bueno lo que estoy haciendo es lo siguiente:

Cuando se registra una compra hago 2 cosas:
1. Agregar al listview los datos más importantes como: (ID, Articulo, Cantidad, Precio y Total.)
2. Guardo en la base de datos estos mismos datos, valga la redundancia y otros más como (Fecha emisión, Estatus, etc...)

Cada vez que sucede esto, que se agrega una compra se cree en un texto la sumatoria de todos los totales. Ejemplo: Datos que se muestran en el litview: (ID 001 Total: 200 ID 002 Total 300...) Luego en un texto llamado Total General se mostrar (500).

Existe la posibilidad de quitar de la base de datos y limpiar del listview cualquier compra que se haya registrado  y no se quiera, cuando esto se hace allí es donde requiero ayuda por que necesito por ejemplo: Si se elimino el (ID 002) que son 300 deberia de restar en el texto Total General y mostrarse solo el 200...

Espero que me entiendan, y me puedan aportar ideas ó la rutina para hacer esto.  :D





Título: Re: Sumar totales y luego restarlos
Publicado por: Shell Root en 17 Abril 2010, 18:08 pm
Emmm pues, al momento de generar el archivo de texto, debes de tener una estructura. Por ejemplo:

Código:
ID-Total
--------
001-200;
002-300;
--------
Total:500

Despues de tener algo así, buscas en el archivo de texto el ID que querás eliminar o modificar (Yá que existen delimitadores). Despues buscás el total y lo volves a generar apartir de los demás ID's.

PD: Supongo que despues de terminar la transacción, borras por completo el archivo de texto, no?


Título: Re: Sumar totales y luego restarlos
Publicado por: seba123neo en 18 Abril 2010, 17:45 pm
Hola, pues es muy facil,simplemente hace una funcion que recorra el listview y te devuelva la suma del total, y esta funcion ejecutala cuando agregas y cuando eliminas...y listo.

saludos.


Título: Re: Sumar totales y luego restarlos
Publicado por: ssccaann43 © en 18 Abril 2010, 17:49 pm
Hola, bueno lo que estoy haciendo es lo siguiente:

Cuando se registra una compra hago 2 cosas:
1. Agregar al listview los datos más importantes como: (ID, Articulo, Cantidad, Precio y Total.)
2. Guardo en la base de datos estos mismos datos, valga la redundancia y otros más como (Fecha emisión, Estatus, etc...)

Cada vez que sucede esto, que se agrega una compra se cree en un texto la sumatoria de todos los totales. Ejemplo: Datos que se muestran en el litview: (ID 001 Total: 200 ID 002 Total 300...) Luego en un texto llamado Total General se mostrar (500).

Existe la posibilidad de quitar de la base de datos y limpiar del listview cualquier compra que se haya registrado  y no se quiera, cuando esto se hace allí es donde requiero ayuda por que necesito por ejemplo: Si se elimino el (ID 002) que son 300 deberia de restar en el texto Total General y mostrarse solo el 200...

Espero que me entiendan, y me puedan aportar ideas ó la rutina para hacer esto.  :D

Freddy, por experiencia jamas escribo en la BD si no he terminado la operacion y mucho menos si se trata de facturacion, que luego cualquier error, te saca del sistema y te deja la info en la BD... No es OPTIMO eso...!

En mi software yo cargo todo en el listview, luego con una function recorro el listview para calcular los totales: Total Iva, Sub Total, y Total... Luego de cargar todos los items, al procesar la factura e imprimirla, la almaceno en la BD... Hasta ahora, es lo más viable...! me ha funcionado a la perfección... Por que? Pues si el equipo se apaga, se reinicia, se jode, o cualquier vaina le sucede, pues no queda un registro en vano en la BD....! Si la impresora da error y no sale, si se cuelga el software por cualquier razon, etc... No tengo el registro en vano...! Ahora si todo sale a la perfección, guardo en la BD y listo...!


Título: Re: Sumar totales y luego restarlos
Publicado por: freddyjose00 en 18 Abril 2010, 18:51 pm
Gracias a todos por sus respouestas. Ya está solucionado..