FoxPro/Visual FoxPro - Encontró fin de archivo

   
Vista:

Encontró fin de archivo

Publicado por Karen Barrios (6 intervenciones) el 07/02/2014 15:28:38
Buneos dias, tengo el siguiente codigo, el me hace bien las consultas requeridas, pero se daña y sale error: Encontró fin de archivo.. Podrian ayudarme con esto gracias

CLOSE DATABASES

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
*!*	PRIVATE wfile = '1'+SUBSTR(SYS(2015),3) 
*!*	return wfile
 
CREATE CURSOR Facturas(Codigo C(3),Caja N(1),Factura C(8),PrefijoFacturas C(4),NumIniFacturas C(15),NumFinFacturas C(15),;
					 Exenta L,Gravada L,Iva N(6),Consumo L,TipoPago C(10),TotalPago N(13),Descuentos N,Anulados L)
 
USE Movimto IN 0
SELECT Movimto
INDEX ON ALLTRIM(DTOS(Fecha))+ALLTRIM(Prefijo)+ALLTRIM(Factura) TO c:\
SET FILTER TO BETWEEN(Movimto.Fecha,THISFORM.TxtFechaDesde.VALUE,THISFORM.txtfechahasta.VALUE)
GO TOP
DO WHILE  !EOF()
	IF !EMPTY(Movimto.Coddian)
		lnCodigo 			= Movimto.Codigo
		lcfactura 			= Movimto.Factura
		lnCaja 				= Movimto.Caja
		lcTipoPago			= ""
		llAnulado 			= Movimto.Anulado
		lcCoddian 			= Movimto.Coddian
		lcPrefijo 			= Movimto.Prefijo
		lnNuminifac			= Movimto.Facdes
		lnNumfinfac			= Movimto.Fachas
		llExenta			= Movimto.Exenta
		llGravada			= Movimto.Gravada
		lnValorFactura		= Movimto.Valor
		lnValorIva			= 0
		lnValorDescuentos 	= 0
		llconsumo			= .F.
		SELECT Movimto
		SKIP
		DO WHILE !EOF() and lcFactura = Movimto.Factura and lnCaja = Movimto.Caja and lcPrefijo = Movimto.Prefijo
			IF Movimto.Tipo = 'C'
				lnValorFactura = lnValorFactura + Movimto.Valor
			ELSE
			IF Movimto.Codigo <> 'PAG'
					lnValorFactura = lnValorFactura - Movimto.Valor
			ELSE
				lcTipoPago = Movimto.FPago
			ENDIF
			ENDIF
			IF Movimto.Codigo = 'IVA'
				lnValorIva = lnValorIva + Movimto.Valor
			ENDIF
			IF INLIST(Movimto.Codigo,'DSC','DAU')
				lnValorDescuentos = lnValorDescuentos + Movimto.Valor
			ENDIF
			SELECT Movimto
			SKIP
		ENDDO
 
		SELECT Facturas
		APPEND BLANK
		REPLACE Codigo 				WITH lncodigo
		REPLACE Caja 				WITH lnCaja
		REPLACE Factura				WITH lcfactura
		REPLACE PrefijoFacturas 	WITH lcPrefijo
		REPLACE NumIniFacturas		WITH lnNuminifac
		REPLACE NumFinFacturas   	WITH lnNumfinfac
		REPLACE Exenta 				WITH llexenta
		REPLACE Gravada				WITH llgravada
		REPLACE Iva	 				WITH lnValorIva
		REPLACE Consumo				WITH llConsumo
		REPLACE TotalPago		   	WITH lnValorFactura
		REPLACE Descuentos			WITH lnValorDescuentos
		REPLACE Anulados			WITH llAnulado
		REPLACE TipoPago			WITH lcTipoPago
 
		IF EOF()
			RETURN
		ENDIF
	ELSE
		IF !EOF()
			SELECT Movimto
			SKIP
		ENDIF
 
	ENDIF
 
ENDDO
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

Encontró fin de archivo

Publicado por Mauricio Antonio (1367 intervenciones) el 07/02/2014 22:01:43
Este requerimiento es IDENTICO al solicitado por Andrea, pero bueno......
este proceso ya no se te cancelara por encontrar EOF()
*************
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
CLOSE TABLES ALL
*
CREATE CURSOR Facturas(Codigo C(3),Caja N(1),Factura C(8),PrefijoFacturas C(4),NumIniFacturas C(15),NumFinFacturas C(15),;
	Exenta L,Gravada L,Iva N(6),Consumo L,TipoPago C(10),TotalPago N(13),Descuentos N,Anulados L)
*
USE Movimto IN 0
SELECT Movimto
INDEX ON ALLTRIM(DTOS(Fecha))+ALLTRIM(Prefijo)+ALLTRIM(Factura) TO c:\
SET FILTER TO BETWEEN(Movimto.Fecha,THISFORM.TxtFechaDesde.VALUE,THISFORM.txtfechahasta.VALUE)
GO TOP
SCAN
	IF EMPTY(coddian)
		LOOP
	ENDIF
*
	lnCodigo = Codigo
	lcfactura = Factura
	lnCaja = Caja
	lcTipoPago	 = ""
	llAnulado = Anulado
	lcCoddian = Coddian
	lcPrefijo = Prefijo
	lnNuminifac	 = Facdes
	lnNumfinfac	 = Fachas
	llExenta	 = Exenta
	llGravada	 = Gravada
	lnValorFactura	 = Valor
	lnValorIva	 = 0
	lnValorDescuentos = 0
	llconsumo	 = .F.
*
	SCAN WHILE lcFactura = Factura AND lnCaja = Caja AND lcPrefijo = Prefijo
*
		IF Tipo = 'C'
			lnValorFactura = lnValorFactura + Valor
		ELSE
			IF Codigo <> 'PAG'
				lnValorFactura = lnValorFactura - Valor
			ELSE
				lcTipoPago = FPago
			ENDIF
			ENDIF
*
		IF Codigo = 'IVA'
			lnValorIva = lnValorIva + Valor
		ENDIF
*
		IF INLIST(Codigo,'DSC','DAU')
			lnValorDescuentos = lnValorDescuentos + Valor
		ENDIF
*
 
	ENDSCAN
*
	SELECT Facturas
	APPEND BLANK
	REPLACE Codigo WITH lncodigo, Caja WITH lnCaja, Factura WITH lcfactura, PrefijoFacturas WITH lcPrefijo, NumIniFacturas WITH lnNuminifac,	;
		NumFinFacturas WITH lnNumfinfac, Exenta WITH llexenta, Gravada	WITH llgravada, Iva WITH lnValorIva, Consumo	WITH llConsumo,	;
		TotalPago WITH lnValorFactura, Descuentos	WITH lnValorDescuentos, Anulados	 WITH llAnulado, TipoPago WITH lcTipoPago
*
	SELECT Movimto
 
ENDSCAN
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