FoxPro/Visual FoxPro - CONVERTIR NUMEROS A LETRAS

 
Vista:

CONVERTIR NUMEROS A LETRAS

Publicado por DANIEL ESPINOSA (13 intervenciones) el 07/02/2001 15:50:42
TENGO UN PROGRAMA DE FACTURACION DE SERVICIOS EXCEQUIALES Y EN LOS RECIBOS ME HAS SUGERIDO QUE PONGA EL VALOR EN LETRAS TAMBIEN
EJEMPLO

SI EL TOTAL DEL RECIBO SON $ 1.000

QUE EN EL DETALLE QUEDE

DETALLE: $ MIL PESOS

POR FAVOR SI ME PUEDES AYUDAR TE LO AGRADESCO Y SI EN ALGO PUEDO SERVIR CON GUSTO

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Eugenio Duran Moller (1 intervención) el 07/02/2001 19:51:19
Hola Soy de Mexico Haber si sabes quien me puede ayudar con una preguntas que puse el foro

este codigo te escribe una x cantidad con letras.

Solo tines que ponerla en un archivo .prg
y mandarlo llamar asignandole dos valores

por ejemplo
x=1286.54
mCanlet=canlet(x,1000)

donde:
mCanlet: es la variable donde se guarda la cadena
x: es la cantidad a convertir
canlet: es el archivo donde esta el codigo
1000: es un parametro necesario

***Codigo
parameter na, w_long
store row() to rowe
set decimals to 2
public i
dimension u[9],dd[9],d[9],c[9],cad[5]
for zk = 1 to 5
store space(w_long) to cad[zk]
next
u[1]="UN"
u[2]="DOS"
u[3]="TRES"
u[4]="CUATRO"
u[5]="CINCO"
u[6]="SEIS"
u[7]="SIETE"
u[8]="OCHO"
u[9]="NUEVE"
dd[1]="ONCE"
dd[2]="DOCE"
dd[3]="TRECE"
dd[4]="CATORCE"
dd[5]="QUINCE"
dd[6]="DIEZ Y SEIS"
dd[7]="DIEZ Y SIETE"
dd[8]="DIEZ Y OCHO"
dd[9]="DIEZ Y NUEVE"
d[1]="DIEZ"
d[2]="VEINTE"
d[3]="TREINTA"
d[4]="CUARENTA"
d[5]="CINCUENTA"
d[6]="SESENTA"
d[7]="SETENTA"
d[8]="OCHENTA"
d[9]="NOVENTA"
c[1]="CIEN"
c[2]="DOSCIENTOS"
c[3]="TRESCIENTOS"
c[4]="CUATROCIENTOS"
c[5]="QUINIENTOS"
c[6]="SEISCIENTOS"
c[7]%3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por DANIEL ESPINOSA (13 intervenciones) el 07/02/2001 22:56:35
NO ENCUENTRO CULA ES LA VARIABLE A IMPRIMIR

COMPILO EL CODIGO EN UN PRG
PERO ME DEVUELVE UNA IMPRESION DE TIPO LOGICO

A VER SI ME AYUDAS A TERMINAR

GRACIAS.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos López (33 intervenciones) el 08/02/2001 01:11:58
Daniel:

Te adjunto unas funciones hechas en excel para lo que necesitas

en la celda A1 pones:
500
en la celda a2 pones
=numeroaletra)a1)
y listo el resultado en A2 es

(QUINIENTOS PESOS 00/MN)

funciona con numeros de 12 posiciones de enteros y 2 decimales

solo tienes que ajustarlo para que corra en visual fox.

PD: Si tienes dudas mandame un correo y si te funciona avisame.


saludos
Carlos



Function numeroaletra(numero) As String
If numero > 0 Then
numero = Round(numero, 2)
cnumero = Trim(Str(Int(numero)))
If Len(cnumero) <= 12 Then
vcent = 0
vmil = 0
vmill = 0
vmmill = 0
cadmmill = ""
cadmill = ""
cadmil = ""
cadcent = ""
ceros = "000000000000"
cnumero = Mid(ceros, 1, 12 - Len(cnumero)) + Trim(cnumero)
vcent = Val(Right(cnumero, 3))
vmil = Val(Mid(cnumero, 7, 3))
vmill = Val(Mid(cnumero, 4, 3))
vmmill = Val(Mid(cnumero, 1, 3))
cadcent = IIf(vcent = 0, "", letras(vcent))
cadmil = IIf(vmil = 0, "", letras(vmil) + " mil")
cadmill = IIf(vmill = 0, "", letras(vmill) + IIf(vmill > 1, " millones", " millon"))
cadmmill = IIf(vmmill = 0, "", letras(vmmill) + " mil")
numeroaletra = Trim(cadmmill + "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos Lopez (33 intervenciones) el 08/02/2001 01:14:20
Te mando las fuinciones por separado porque se trunco el mensaje

Function numeroaletra(numero) As String
If numero > 0 Then
numero = Round(numero, 2)
cnumero = Trim(Str(Int(numero)))
If Len(cnumero) <= 12 Then
vcent = 0
vmil = 0
vmill = 0
vmmill = 0
cadmmill = ""
cadmill = ""
cadmil = ""
cadcent = ""
ceros = "000000000000"
cnumero = Mid(ceros, 1, 12 - Len(cnumero)) + Trim(cnumero)
vcent = Val(Right(cnumero, 3))
vmil = Val(Mid(cnumero, 7, 3))
vmill = Val(Mid(cnumero, 4, 3))
vmmill = Val(Mid(cnumero, 1, 3))
cadcent = IIf(vcent = 0, "", letras(vcent))
cadmil = IIf(vmil = 0, "", letras(vmil) + " mil")
cadmill = IIf(vmill = 0, "", letras(vmill) + IIf(vmill > 1, " millones", " millon"))
cadmmill = IIf(vmmill = 0, "", letras(vmmill) + " mil")
numeroaletra = Trim(cadmmill + " " + cadmill + " " + cadmil + " " + cadcent)
centavos = Trim(Str(numero * 100 - (Int(numero * 100 / 100) * 100)))
centavos = Mid("00", 1, 2 - Len(centavos)) + centavos

numeroaletra = "(" + numeroaletra + " pesos " + centavos + "/MN)"
numeroaletra = UCase(numeroaletra)
Else
numeroaletra = "Fuera
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Fin de Numero a letra

Publicado por Carlos Lopez (33 intervenciones) el 08/02/2001 01:20:25
Function numeroaletra(numero) As String
If numero > 0 Then
numero = Round(numero, 2)
cnumero = Trim(Str(Int(numero)))
If Len(cnumero) <= 12 Then
....
else
numeroaletra = "Fuera de Rango"
End If
Else
numeroaletra = ""
End If
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por jorge (1 intervención) el 25/09/2007 01:25:57
quiero que me envie la conversion de numeros dicimales a binarios y biciversa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos Lopez (33 intervenciones) el 08/02/2001 01:14:40
Te mando las fuinciones por separado porque se trunco el mensaje

Function unidad(valor)
vallet = ""
Select Case valor
Case Is = 0
vallet = ""
Case Is = 1
vallet = "un"
Case Is = 2
vallet = "dos"
Case Is = 3
vallet = "tres"
Case Is = 4
vallet = "cuatro"
Case Is = 5
vallet = "cinco"
Case Is = 6
vallet = "seis"
Case Is = 7
vallet = "siete"
Case Is = 8
vallet = "ocho"
Case Is = 9
vallet = "nueve"
Case Is = 10
vallet = "diez"
Case Is = 11
vallet = "once"
Case Is = 12
vallet = "doce"
Case Is = 13
vallet = "trece"
Case Is = 14
vallet = "catorce"
Case Is = 15
vallet = "quince"
Case Is = 20
vallet = "veinte"

End Select
unidad = vallet
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos Lopez (33 intervenciones) el 08/02/2001 01:16:46
Te mando las fuinciones por separado porque se trunco el mensaje

Function decena(valor)
vallet = ""
Select Case valor
Case Is = 0
vallet = ""
Case Is = 1
vallet = "dieci"
Case Is = 2
vallet = "vienti"
Case Is = 3
vallet = "treinta"
Case Is = 4
vallet = "cuarenta"
Case Is = 5
vallet = "cincuenta"
Case Is = 6
vallet = "sesenta"
Case Is = 7
vallet = "setenta"
Case Is = 8
vallet = "ochenta"
Case Is = 9
vallet = "noventa"
End Select
decena = vallet
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos Lopez (33 intervenciones) el 08/02/2001 01:17:40
Te mando las fuinciones por separado porque se trunco el mensaje

Function centena(valor, cerrado)
vallet = ""
Select Case valor
Case Is = 0
vallet = ""
Case Is = 1
vallet = IIf(cerrado = True, "cien", "ciento")
Case Is = 5
vallet = "quinientos"
Case Is = 7
vallet = "setecientos"
Case Is = 9
vallet = "novecientos"
Case Else
vallet = unidad(valor) + "cientos"
End Select
centena = vallet
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por NO ME FUNCIONA (13 intervenciones) el 12/02/2001 22:17:39
NO LOGRO COMPILAR EL CODIGO
SI TIENES EL CODIGO EN FOX TE LO AGRADEXCO

DANIEL ESPINOSA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Carlos Valdivia (1 intervención) el 06/11/2014 15:48:39
Gracias por su apoyo, me ayudó a superar mi problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar