
Duda con DO WHILE
Publicado por Andrea Lopez (7 intervenciones) el 06/02/2014 04:52:31
Buenas noches,
Estoy creando un programa que abre una tabla y la empieza a recorrer según las condiciones dadas, este es el código:
Lo que deseo hacer es recorrer la tabla siempre y cuando encuentre coddian y la fecha desde sea menor o igual a la fecha hasta... No se si está bien, se podría mejorar?
Estoy creando un programa que abre una tabla y la empieza a recorrer según las condiciones dadas, este es el código:
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
80
81
82
83
84
85
86
CREATE CURSOR Salida(Codigo C(3),Caja N(1),NumComputador C(15),PrefijoFacturas C(4),NumIniFaturas C(15),NumFinFacturas C(15),;
Exenta L,AcumVentasExentas N,Gravada L,AcumVentasGravadas N,Iva N(6),Consumo L,;
AplicaDescuento N(13),Valor N(13),FormaPago C(10),TipoPago C(10),TotalPago N(13),;
Empresa C(30),NitEmpresa N(20),FechaDesde D,FechaHasta D,AcumVentasGravadas16 N,AcumVentasGravadas5 N,Descuentos N)
USE facturacion
INDEX ON ALLTRIM(STR(POS)+ALLTRIM(DTOS(Fecha))) TO facturacion
GO TOP
DO WHILE !EOF() and THISFORM.ldFecha <= THISFORM.TxtFechaHasta.VALUE
lncaja = facturacion.caja
!EMPTY (CodCliente)
DO WHILE !EOF() and lnfactura = facturacion.factura
SELECT salida
APPEND BLANK
REPLACE salida.Codigo WITH facturacion.Codigo
REPLACE salida.Caja WITH facturacion.Caja
REPLACE salida.PrefijoFacturas WITH facturacion.Prefijo
REPLACE salida.NumIniFaturas WITH facturacion.Facdes
REPLACE salida.NumFinFacturas WITH facturacion.Fachas
REPLACE salida.Exenta WITH facturacion.Exenta
REPLACE salida.Gravada WITH facturacion.Gravada
REPLACE salida.Iva WITH facturacion.Tarifa
REPLACE salida.Valor WITH facturacion.Valor
REPLACE salida.TotalPago WITH facturacion.Valor
IF salida.Codigo = 'PAG' and salida.Gravada > 0
lnAcumVentasgravadas = SUM(salida.Valor)
REPLACE salida.AcumVentasGravadas WITH lnAcumVentasgravadas
ENDIF
IF salida.Codigo = 'PAG' and salida.Exenta > 0
lnAcumVentasexentas = SUM(salida.valor)
REPLACE salida.AcumVentasExentas WITH lnAcumVentasExentas
ENDIF
IF salida.Codigo = 'PAG' and Tarifa = 16 and salida.gravada > 0
lnAcumVentasGravadas16 = SUM(salida.valor)
REPLACE salida.lnAcumVentasGravadas16 WITH lnAcumVentasGravadas16
ENDIF
IF salida.Codigo = 'PAG' and Tarifa = 5 and salida.gravada > 0
lnAcumVentasGravadas5 = SUM(salida.valor)
REPLACE salida.lnAcumVentasGravadas5 WITH lnAcumVentasGravadas5
ENDIF
IF salida.Codigo = 'DSC' and salida.AplicaDescuento > 0
lnDescuentos = SUM (salida.valor)
REPLACE salida.lnDescuentos WITH lnDescuentos
ENDIF
IF salida.FormaPago = 'EF'
lcFormaPago = '1'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'CH'
lcFormaPago = '2'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'TA'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'BO'
lcFormaPago = '5'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'VA'
lcFormaPago = '6'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'OT'
lcFormaPago = '7'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.TipoPago = 'C'
lcTipoPago = 'Crédito'
REPLACE salida.TipoPago WITH lcTipoPago
ENDIF
IF salida.TipoPago = 'D'
lcTipoPago = 'Débito'
REPLACE salida.TipoPago WITH lcTipoPago
ENDIF
IF salida.FormaPago = 'TA' and salida.TipoPago = 'C'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
IF salida.FormaPago = 'TA' and salida.TipoPago = 'D'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPago
ENDIF
ENDDO
ENDDO
Lo que deseo hacer es recorrer la tabla siempre y cuando encuentre coddian y la fecha desde sea menor o igual a la fecha hasta... No se si está bien, se podría mejorar?
Valora esta pregunta


0