PROCEDURE PesosAletras(Numero)
nEntero is int
nTemporal is int
sLetras is string
nEntero = Numero
SWITCH nEntero
CASE 0 : sLetras = "CERO"
CASE 1 : sLetras = "UN"
CASE 2 : sLetras = "DOS"
CASE 3 : sLetras = "TRES"
CASE 4 : sLetras = "CUATRO"
CASE 5 : sLetras = "CINCO"
CASE 6 : sLetras = "SEIS"
CASE 7 : sLetras = "SIETE"
CASE 8 : sLetras = "OCHO"
CASE 9 : sLetras = "NUEVE"
CASE 10 : sLetras = "DIEZ"
CASE 11 : sLetras = "ONCE"
CASE 12 : sLetras = "DOCE"
CASE 13 : sLetras = "TRECE"
CASE 14 : sLetras = "CATORCE"
CASE 15 : sLetras = "QUINCE"
CASE < 20 : sLetras = "DIECI" + PesosAletras(nEntero - 10)
CASE 20 : sLetras = "VEINTE"
CASE < 30 : sLetras = "VEINTI" + PesosAletras(nEntero - 20)
CASE 30 : sLetras = "TREINTA"
CASE 40 : sLetras = "CUARENTA"
CASE 50 : sLetras = "CINCUENTA"
CASE 60 : sLetras = "SESENTA"
CASE 70 : sLetras = "SETENTA"
CASE 80 : sLetras = "OCHENTA"
CASE < 100 :
nTemporal = nEntero / 10
nTemporal = nTemporal * 10
sLetras = PesosAletras(nTemporal) + " Y
" + PesosAletras(nEntero-nTemporal)
CASE 100 : sLetras = "CIEN"
CASE < 200 : sLetras = "CIENTO "
+ PesosAletras(nEntero - 100)
CASE 200, 300, 400, 600, 800 : sLetras = PesosAletras(nEntero/100) + "CIENTOS"
CASE 500 : sLetras = "QUINIENTOS"
CASE 700 : sLetras = "SETECIENTOS"
CASE 900 : sLetras = "NOVECIENTOS"
CASE < 1000 :
nTemporal = nEntero / 100
nTemporal = nTemporal * 100
sLetras = PesosAletras(nTemporal) + "
" + PesosAletras(nEntero-nTemporal)
CASE 1000 : sLetras = "MIL"
CASE < 2000 : sLetras = "MIL " + PesosAletras(nEntero-1000)
CASE < 1000000 :
sLetras = PesosAletras(nEntero/1000) + "
MIL"
nTemporal = nEntero / 1000
nTemporal = nTemporal * 1000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000 AND nTemporal > 0 THEN
sLetras = sLetras + " "
+ PesosAletras(nTemporal)
END
CASE 1000000 : sLetras = "UN MILLON"
CASE < 2000000 : sLetras = "UN MILLON "
+ PesosAletras(nEntero - 1000000)
CASE < 1000000000000 :
sLetras = PesosAletras(nEntero/1000000) + "
MILLONES"
nTemporal = nEntero / 1000000
nTemporal = nTemporal * 1000000
nTemporal = nEntero - nTemporal
IF nTemporal < 1000000 AND nTemporal > 0 THEN
sLetras = sLetras + " "
+ PesosAletras(nTemporal)
END
END
RESULT sLetras
Excelente código...
ResponderEliminarGracias Alex... Por tu ayuda
ResponderEliminarMuchas gracias por el código.
ResponderEliminarAñado un procedimiento utilizando tu código por si alguien lo necesita, para que funcione con decimales.
PROCEDURE NumeroALetras(pNumero=0, pTipo="Euros", pCentimos="Ctms")
nParteEntera is int=Abs(IntegerPart(pNumero))
nParteDecimal is int
sParteEntera is string=PesosALetras(nParteEntera)
sParteDecimal is string
sNegativo is string
sTexto is string
IF DecimalPart(pNumero)>0 THEN //Extrae la parte decimal.
nParteDecimal=Val(ExtractString(NumToString(pNumero),2,"."))
END
IF pNumero<0 THEN
sNegativo="Menos "
END
IF sParteEntera<>"" AND pTipo<>"" THEN
sParteEntera+=" "+pTipo
END
IF nParteDecimal>0 THEN
sParteDecimal=PesosALetras(nParteDecimal)
END
IF sParteDecimal<>"" AND pCentimos<>"" THEN
sParteDecimal=" Con "+sParteDecimal+" "+pCentimos
END
sTexto=sNegativo+sParteEntera+sParteDecimal
RESULT sTexto
en que parte lo añadiste perdon eso no entendi ayuda por favor
Eliminar