
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 lnAcumVentasgravadasENDIF
IF salida.Codigo = 'PAG' and salida.Exenta > 0
lnAcumVentasexentas = SUM(salida.valor)
REPLACE salida.AcumVentasExentas WITH lnAcumVentasExentasENDIF
IF salida.Codigo = 'PAG' and Tarifa = 16 and salida.gravada > 0
lnAcumVentasGravadas16 = SUM(salida.valor)
REPLACE salida.lnAcumVentasGravadas16 WITH lnAcumVentasGravadas16ENDIF
IF salida.Codigo = 'PAG' and Tarifa = 5 and salida.gravada > 0
lnAcumVentasGravadas5 = SUM(salida.valor)
REPLACE salida.lnAcumVentasGravadas5 WITH lnAcumVentasGravadas5ENDIF
IF salida.Codigo = 'DSC' and salida.AplicaDescuento > 0
lnDescuentos = SUM (salida.valor)
REPLACE salida.lnDescuentos WITH lnDescuentosENDIF
IF salida.FormaPago = 'EF'
lcFormaPago = '1'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'CH'
lcFormaPago = '2'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'TA'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'BO'
lcFormaPago = '5'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'VA'
lcFormaPago = '6'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'OT'
lcFormaPago = '7'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.TipoPago = 'C'
lcTipoPago = 'Crédito'
REPLACE salida.TipoPago WITH lcTipoPagoENDIF
IF salida.TipoPago = 'D'
lcTipoPago = 'Débito'
REPLACE salida.TipoPago WITH lcTipoPagoENDIF
IF salida.FormaPago = 'TA' and salida.TipoPago = 'C'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
IF salida.FormaPago = 'TA' and salida.TipoPago = 'D'
lcFormaPago = '3'
REPLACE salida.FormaPago WITH lcFormaPagoENDIF
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
