Saldo anterior en un Kardex de Productos para Reporte
Publicado por Raptor (1 intervención) el 10/03/2021 05:21:00
Estimados Amigos, que esten bien, quisiera molestarlos con una luz o ideas. Estoy realizando un Kardex de un producto y no se me ocurre como poder obtener el saldo anterior que estoy guardando en un cursor. Estoy utilizando Visual Foxpro 9.0
Les explico:
Hago un select en una tabla con los movimientos diarios por rango de fechas y obtengo los datos generales y los meto en un cursor.:
SELECT "FC" AS TipoDoc, nrofactura as Docto, producto, nom_produc, 0 as debe, cantidad as haber, unidad, precio as valor, fechamov, 0 AS saldo;
FROM facturas_det ORDER BY producto, fechamov INTO CURSOR crsPrint READWRITE
En la tabla de productos, tengo campos llamados Debe_ant, Haber_ant, que al restarlos, Debe-Haber me genera el saldo anterior a x fecha, ejemplo DAnt=50, HAnt=20 Saldo= 30 (50-20).
entonces lo que no se me ocurre es en reporte, como le digo VFP que esos 30 son el saldo anterior del producto, y de ahi que me muestre sus movimientos. (por supuesto, en el reporte puedo hacer un group by, y ahi por producto, pero necesito, que en el reporte exista como primera linea, Saldo Anterior. y de ahi los movimientos.
Dije, lo hago manual, e hice el cursos READWRITE con saldo 0 para recorrelo y actualizar el saldo, pero no me sale, cuando quiero hacer el Replace en el Cursor, me dice que pierde la data, overflow:
Tengo un codigo mas o menos asi:
Numeric Overflow. Data was lost
de repente estoy inventando el Agua Azucarada, pero no se me ocurre que otra forma hacerlo en forma automatica como para que me lo genere el VFP en el reporte.
Ayuda please!!!
Gracias
Les explico:
Hago un select en una tabla con los movimientos diarios por rango de fechas y obtengo los datos generales y los meto en un cursor.:
SELECT "FC" AS TipoDoc, nrofactura as Docto, producto, nom_produc, 0 as debe, cantidad as haber, unidad, precio as valor, fechamov, 0 AS saldo;
FROM facturas_det ORDER BY producto, fechamov INTO CURSOR crsPrint READWRITE
En la tabla de productos, tengo campos llamados Debe_ant, Haber_ant, que al restarlos, Debe-Haber me genera el saldo anterior a x fecha, ejemplo DAnt=50, HAnt=20 Saldo= 30 (50-20).
entonces lo que no se me ocurre es en reporte, como le digo VFP que esos 30 son el saldo anterior del producto, y de ahi que me muestre sus movimientos. (por supuesto, en el reporte puedo hacer un group by, y ahi por producto, pero necesito, que en el reporte exista como primera linea, Saldo Anterior. y de ahi los movimientos.
Dije, lo hago manual, e hice el cursos READWRITE con saldo 0 para recorrelo y actualizar el saldo, pero no me sale, cuando quiero hacer el Replace en el Cursor, me dice que pierde la data, overflow:
Tengo un codigo mas o menos asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Select crsPrint
Go Top
xpactual = crsPrint.producto
xnom_produc = crsPrint.nom_produc
AALIAS = ALIAS()
xSaldoAct = xSaldoAct
xSaldoAnt = SaldoAnteriorProducto(ALLTRIM(xpactual)) &&Funcion que devuelve el saldo anterior
SELECT (AALIAS)
Scan For !Empty( crsPrint.producto )
IF crsPrint.producto != xpactual
xpactual = crsPrint.producto
AALIAS = ALIAS()
xSaldoAnt = SaldoAnteriorProducto(ALLTRIM(xpactual))
SELECT (AALIAS)
xSaldoAct = xSaldoAct
APPEND BLANK
Replace TipoDoc WITH "SA"
Replace Docto WITH SPACE(10)
Replace producto WITH xpactual
Replace nom_produc WITH "Saldo Anterior"
Replace saldo WITH xSaldoAnt
xSaldoAct = xSaldoAnt
ENDIF
SCAN FOR crsPrint.producto = xpactual
xSaldoAct = xSaldoAnt + crsPrint.Debe - crsPrint.haber
** Reemplazo el saldo anterior del producto, en la siguiente linea es donde obtengo el error
Replace saldo With xSaldoAct
ENDSCAN
Endscan
Numeric Overflow. Data was lost
de repente estoy inventando el Agua Azucarada, pero no se me ocurre que otra forma hacerlo en forma automatica como para que me lo genere el VFP en el reporte.
Ayuda please!!!
Gracias
Valora esta pregunta


0