Función que devuelve el nombre de un numero en vfp 9.0

Hola experto tengo que terminar un informe que tenga el diseño de un recibo, con lo cual en la parte donde dice "Recibí la suma de: mil quinientos treinta y dos pesos " no he podido pasar 1532 a su nombre como cadena de caracteres. Este problema lo busque en las funciones de vfp 9.0 pero no he tenido suerte.
Desde ya muchas gracias por tu colaboración.

1 respuesta

Respuesta
1
PARAMETERS numero, letra
DIMENSION unidad(10), decena(10), centena(10), excepción(5)
unidad(1)=""
unidad(2)="UN "
unidad(3)="DOS "
unidad(4)="TRES "
unidad(5)="CUATRO "
unidad(6)="CINCO "
unidad(7)="SEIS "
unidad(8)="SIETE "
unidad(9)="OCHO "
unidad(10)="NUEVE "
decena(1)=""
decena(2)="DIEZ "
decena(3)="VEINTE "
decena(4)="TREINTA "
decena(5)="CUARENTA "
decena(6)="CINCUENTA "
decena(7)="SESENTA "
decena(8)="SETENTA "
decena(9)="OCHENTA "
decena(10)="NOVENTA "
centena(1)=""
centena(2)="CIENTO "
centena(3)="DOSCIENTOS "
centena(4)="TRESCIENTOS "
centena(5)="CUATROCIENTOS "
centena(6)="QUINIENTOS "
centena(7)="SEISCIENTOS "
centena(8)="SETECIENTOS "
centena(9)="OCHOCIENTOS "
centena(10)="NOVECIENTOS "
excepcion(1)="ONCE "
excepcion(2)="DOCE "
excepcion(3)="TRECE "
excepcion(4)="CATORCE "
excepcion(5)="QUINCE "
num2=STR(numero, 12,2)
n100000000=INT(numero/100000000)
numero=numero-n100000000*100000000
n10000000=INT(numero/10000000)
numero=numero-n10000000*10000000
n1000000=INT(numero/1000000)
numero=numero-n1000000*1000000
n100000=INT(numero/100000)
numero=numero-n100000*100000
n10000=INT(numero/10000)
numero=numero-n10000*10000
n1000=INT(numero/1000)
numero=numero-n1000*1000
n100=INT(numero/100)
numero=numero-n100*100
n10=INT(numero/10)
numero=numero-n10*10
N=INT(numero)
numero=RIGHT(num2,2)
******** MILLONES ********
IF n100000000=1 .AND. n10000000=0 .AND. n1000000=0
letra="CIEN "
ELSE
IF n10000000=1 .AND. n1000000>0 .AND. n1000000<=5
letra=centena(n100000000+1)+excepcion(n10000000)
ELSE
letra=centena(n100000000+1)+decena(n10000000+1)+IIF(n1000000<>0 .AND. n10000000<>0,"Y ","")+unidad(n1000000+1)
ENDIF
ENDIF
IF n100000000<>0.OR.n10000000<>0.OR.n1000000>1
letra=letra+"MILLONES "
ENDIF
IF n100000000=0.AND.n10000000=0.AND.n1000000=1
letra=letra+"MILLON "
ENDIF
********** MILES **********
IF n100000=1 .AND. n10000=0 .AND. n1000=0
letra=letra+"CIEN "
ELSE
IF n10000=1 .AND. n1000>0 .AND. n1000<=5
letra=letra+centena(n100000+1)+excepcion(n1000)
ELSE
letra=letra+centena(n100000+1)+decena(n10000+1)+IIF(n1000<>0 .AND. n10000<>0,"Y ","")+unidad(n1000+1)
ENDIF
ENDIF
IF letra<>"" .OR. n1000<>0.OR.n10000<>0.OR.n100000<>0
letra=letra+"MIL "
ENDIF
IF n100=1 .AND. n10=0 .AND. N=0
letra=letra+"CIEN "
ELSE
IF n10=1 .AND. N>0 .AND. N<=5
letra=letra+centena(n100+1)+excepcion(N)
ELSE
letra=letra+centena(n100+1)+decena(n10+1)+IIF(N<>0 .AND. n10<>0,"Y ","")+unidad(N+1)
ENDIF
ENDIF
letra=letra+numero+"/100"+" US$ DOLARES "
RETURN

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas