Reporte

Tengo que hacer un listado de factursa de un cliente y por cada registro(factura) tengo un campo llamado saldo. Quiero que me vaya sumando ese campo para todas las facturas, es decir que se vaya acumulando. Le pongo en las propiedades del campo por medio del botón "Calculos", la opción de sumas, pero en el primer registro me pone 0, recién en el segundo registro pone el saldo del primero, y en el tercero acumula lo del primero y lo del segundo y así sucesivamente.

1 Respuesta

Respuesta
1
Tienes que agrupar tus Campos por medio del SQL
Supongamos que tienes una tabla "FACTURA" con los sig. campos:
IdFact = numero de factura
Abono = Abonos a cuenta
cliente = nombre del cliente
. .
. .
. .
Y así sucesivamente
Lo único que tienes que hacer es agrupar la suma de todos lo abonos, por medio del numero de factura:
SELECT idFact, Sum(Abono) as Pagado, Cliente From Facturas Group by idFact
Eso es todo...
El problema es que me agrupa y yo quiero el detalle, es decir necesito que en uno de los campos de la consulta me vaya poniendo el valor acumulado de todos los registros.
No comprendo muy bien tu planteamiento.
Podrías mostrarme gráficamente que es lo que necesitas, es decir, simularlo con una tabla de excel y me lo envías ver la posibilidad de poder ayudarte.
Factura Importe Saldo Acumulado
1 200 200
2 140 340
3 320 660
4 140 800
Me gustaría que la consulta me genera una columna como la ultima del ejemplo
Vaya, hasta que nos vamos entendiendo.
La primera solución que se me ocurre con tu planteamiento es el siguiente:
**
SUPONGAMOS QUE TENEMOS UNA TABLA LLAMADA 'EEE' QUE TIENE DOS CAMPOS: 'A' y 'B', donde 'A' es el campo donde se almacena el número de factura y el campo 'B' es en donde se almacena el saldo.
Eee
---------------
A | B
---------------
1 | 100
2 | 150
3 | 50
4 | 80
. | .
. | .
---------------
******************
1. Crea un procedimiento (en un archivo .PRG [Sumar.prg por ejemplo]) con el sig. código:
***************
SUMAR.PRG
***************
Parameters cAliasOrigen, nRegActual
Local cAlias, nDevuelve
cAlias = Alias()
Select &cAliasOrigen
go top
Sum b to nDevuelve Next nRegActual
if !Allt(cAliasOrigen) == ''
Select &cAlias
endif
Return nDevuelve
*************
2. Despues de abrir la tabla puedes realizar la siguiente consulta:
SELECT a,b, Sumar('eee',Recno()) AS Acumulado FROM eee
*Como te daras cuenta estamos llamando al procedimiento que creamos en el paso 1, al que le mandamos como parámetros el nombre del Alias y el número del registro actual.
lo anterior te va a arrojar el resultado que deseas !!!
-------------------------
A | B | Acumulado
-------------------------
1 | 100 | 100
2 | 150 | 250
3 | 50 | 300
4 | 80 | 380
. | . | .
. | . | .
-------------------------
Estoy seguro que si funciona porque ya están comprobados:
Espero que ahora si, ya le atinemos... {-_-}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas