Linea de programa
Hola buen día, tengo que sacar el saldo anterior desde una tabla que contiene los campos: sale, ened, eneh, febd, febh... Dicd, dich para esto estoy haciendo este programa pero me sale un error que dice varieble ENE no encontrado en la linea donde esta el for no se si estaré haciendo bien el array. Ojala me puedas apoyar estuve me falta hacer eso para terminar el reporte. Gracias.
close databases
cRescta="d:\pruebas\sicofi\pr_conta\main\rescta08"
IF File(cRescta+".idx")
DELETE FILE cRescta+".idx"
ENDIF
USE (cRescta) EXCLUSIVE alias r1
INDEX ON ccta TO (cRescta) FOR LEN(ALLTRIM(ccta))=8
SELECT 1
GO TOP
cMesAnte="09"
nSaldoAntDebe=0
nSaldoAntHaber=0
nGSLdAntDebe=0
nGSLdAntHaber=0
DO WHILE !EOF()
nSaldoAntDebe=iif(cMesAnte="12",iif(r1->sale>0,sale,0),retsaldo(cMesAnte,"D"))
nSaldoAntHaber=iif(cMes="12",iif(r1->sale<0,r1->sale*-1,0),retsaldo(cMesAnte,"H"))
nGSLdAntDebe=nGSLdAntDebe+nSaldoAntDebe
nGSLdAntHaber=nGSLdAntHaber+nSaldoAntHaber
ENDDO
@02,12 say PADL("Saldo Anterior:",15)+" "+TRANSFORM(nGSLdAntDebe,'###,###,###,###.##')+" "+TRANSFORM(nGSLdAntHaber,'###,###,###,###.##')
FUNCTION retsaldo(cMes,cTipo)
nSaldo=0
IF cTipo="D"
IF sale>=0
nSaldo=sale
ENDIF
ELSE
IF sale<0
nSaldo=-1*sale
ENDIF
ENDIF
FOR ji=1 TO VAL(cMes)
cField=campomes(PADL(ALLTRIM(STR(ji)),2,"0"))
nSaldo=nSaldo + &cField + cTipo &&Aqui sale el error vaiable ENE no encontrado
NEXT
RETURN nSaldo
FUNCTION campomes(cMes)
LOCAL ARRAY laArray[12]
laArray[01]="ENE"
laArray[02]="FEB"
laArray[03]="MAR"
laArray[04]="ABR"
laArray[05]="MAY"
laArray[06]="JUN"
laArray[07]="JUL"
laArray[08]="AGO"
laArray[09]="SET"
laArray[10]="OCT"
laArray[11]="NOV"
laArray[12]="DIC"
RETURN (laArray[VAL(cMes)])
close databases
close databases
cRescta="d:\pruebas\sicofi\pr_conta\main\rescta08"
IF File(cRescta+".idx")
DELETE FILE cRescta+".idx"
ENDIF
USE (cRescta) EXCLUSIVE alias r1
INDEX ON ccta TO (cRescta) FOR LEN(ALLTRIM(ccta))=8
SELECT 1
GO TOP
cMesAnte="09"
nSaldoAntDebe=0
nSaldoAntHaber=0
nGSLdAntDebe=0
nGSLdAntHaber=0
DO WHILE !EOF()
nSaldoAntDebe=iif(cMesAnte="12",iif(r1->sale>0,sale,0),retsaldo(cMesAnte,"D"))
nSaldoAntHaber=iif(cMes="12",iif(r1->sale<0,r1->sale*-1,0),retsaldo(cMesAnte,"H"))
nGSLdAntDebe=nGSLdAntDebe+nSaldoAntDebe
nGSLdAntHaber=nGSLdAntHaber+nSaldoAntHaber
ENDDO
@02,12 say PADL("Saldo Anterior:",15)+" "+TRANSFORM(nGSLdAntDebe,'###,###,###,###.##')+" "+TRANSFORM(nGSLdAntHaber,'###,###,###,###.##')
FUNCTION retsaldo(cMes,cTipo)
nSaldo=0
IF cTipo="D"
IF sale>=0
nSaldo=sale
ENDIF
ELSE
IF sale<0
nSaldo=-1*sale
ENDIF
ENDIF
FOR ji=1 TO VAL(cMes)
cField=campomes(PADL(ALLTRIM(STR(ji)),2,"0"))
nSaldo=nSaldo + &cField + cTipo &&Aqui sale el error vaiable ENE no encontrado
NEXT
RETURN nSaldo
FUNCTION campomes(cMes)
LOCAL ARRAY laArray[12]
laArray[01]="ENE"
laArray[02]="FEB"
laArray[03]="MAR"
laArray[04]="ABR"
laArray[05]="MAY"
laArray[06]="JUN"
laArray[07]="JUL"
laArray[08]="AGO"
laArray[09]="SET"
laArray[10]="OCT"
laArray[11]="NOV"
laArray[12]="DIC"
RETURN (laArray[VAL(cMes)])
close databases
1 respuesta
Respuesta de Cesar Enrique Yamunaque Baca
1