Problemas conreportes

Tengo un reporte el cual me saca los datos de toda le mercadería que no se ha entregado en determinado periodo, pero cuando le pongo un perio de 01/01/2002 al 24/04/2003 me tira unos errores de desbordamiento de datos, no se que signifique eso y me gustaría que me ayudaran para resolver este problema ya que algunos datos se pierden.
El código que uso para generar este reporte es el siguiente.
NF1=THISFORM.TEXT1.VALUE
NF2=THISFORM.TEXT2.VALUE
use facturas in 40
use detalle_facturas in 41
use vendedores in 42
use mer_pen_entrega in 43
selec mer_pen_entrega
dele all
SELEC DETALLE_FACTURAS
set filter to fecha>=nf1.and.fecha<=nf2.and.LEFT(DOCUMENTO,4)$'FS FB FE ES EB ED FD '.and.salpenent>0.AND.ANULADA<>.T.
SELEC DETALLE_FACTURAS
go top
SELE detalle_facturas
GO TOP
nchar=0
DO WHILE ! EOF()
SELEC FACTURAS
SET ORDER TO IDXDOCTO
SEEK detalle_facturas.DOCUMENTO
selec vendedores
set order to idxcodigo
SEEK FACTURAS.VENDEDOR
*********
sele detalle_facturas
scatter to xmaco
* browse
sele mer_pen_entrega
appe blank
do while ! Rlock()
enddo
gather from xmaco
repla clientes with facturas.nombre
REPLA vendedor with facturas.vendedor
repla nom_ven with vendedores.nombre
if facturas.cre_con=1
repla cre_con with "CO"
else
repla cre_con with "CR"
endif
do case
case nchar=1
thisform.text5.value="|"
case nchar=2
thisform.text5.value="/"
case nchar=3
thisform.text5.value="-"
case nchar=4
thisform.text5.value="\"
endcase
thisform.text5.refresh
nchar=nchar+1
if nchar>4
nchar=1
endif
**********
SELEC detalle_facturas
SKIP
ENDDO
SELEC DETALLE_FACTURAS
SET FILTER TO
USE
Se le facturas
USE
Se le vendedores
USE
SELEC MER_PEN_ENTREGA
USE
=MESSAGEBOX("PROCESO TERMINADO",0+48,"REPORTES")

1 respuesta

Respuesta
1
Ayudaría muchísimo si indicaras los errores, pero espero que con los pequeños cambios que le hago a tu código funcione.
NF1=THISFORM.TEXT1.VALUE
NF2=THISFORM.TEXT2.VALUE
use facturas in 40
use detalle_facturas in 41
use vendedores in 42
use mer_pen_entrega in 43
selec mer_pen_entrega
dele all
SELEC DETALLE_FACTURAS
Select * from DETALLE_FACTURAS Where (((fecha>=nf1) and (fecha<=nf2)) and (LEFT(DOCUMENTO,4)$'FS FB FE ES EB ED FD ') and (salpenent>0) AND (!ANULADA)) Into Cursor TmpDetaFac
if _Tally>0 Then
Select TmpDetaFac
go top
nchar=0
DO WHILE ! EOF()
SELEC FACTURAS
SET ORDER TO IDXDOCTO
SEEK detalle_facturas.DOCUMENTO
selec vendedores
set order to idxcodigo
SEEK FACTURAS.VENDEDOR
*********
sele detalle_facturas
scatter to xmaco
* browse
sele mer_pen_entrega
appe blank
do while ! rlock()
enddo
gather from xmaco
repla clientes with facturas.nombre
REPLA vendedor with facturas.vendedor
repla nom_ven with vendedores.nombre
if facturas.cre_con=1
repla cre_con with "CO"
else
repla cre_con with "CR"
endif
do case
case nchar=1
thisform.text5.value="|"
case nchar=2
thisform.text5.value="/"
case nchar=3
thisform.text5.value="-"
case nchar=4
thisform.text5.value="\"
endcase
thisform.text5.refresh
nchar=nchar+1
if nchar>4
nchar=1
endif
**********
SELEC TmpDetaFac
SKIP
Enddo
SELEC DETALLE_FACTURAS
USE
Se le facturas
USE
Se le vendedores
USE
SELEC MER_PEN_ENTREGA
USE
=MESSAGEBOX("PROCESO TERMINADO",0+48,"REPORTES")
Endif
El error me lo tira en el Gatter to Maco en esta linea me dice que hubo un desbordamiento numérico y que se perderán unos datos.
Voy a probar los ambios gracias y después te aviso si me funciono y muchas gracias por la ayuda
Pues te deso suerte, aunque no te recomiendo el uso de Gatter, sería mucho más veloz tu programa si utilizas replaces

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas