FoxPro/Visual FoxPro - Convertir cantidad a letra

 
Vista:

Convertir cantidad a letra

Publicado por Pedro Aguilar (6 intervenciones) el 09/07/2006 03:37:27
de casualidad entre sus curiosidades no tienen un programa que convierta una cantidad en letras.
Ejemplo:
2808.62 convertir a= dos mil ochocientos ocho pesos 62/100 m.n

O saben como se le puede hacer me urge.

GRACIAS Y SALUDOS
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 cantidad a letra

Publicado por Plinio (7841 intervenciones) el 09/07/2006 17:22:28
http://www.portalfox.com/modules.php?op=modload&name=News&file=article&sid=1069

http://www.portalfox.com/modules.php?op=modload&name=News&file=article&sid=542

http://www.portalfox.com/modules.php?op=modload&name=News&file=article&sid=148
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 cantidad a letra

Publicado por juan (537 intervenciones) el 09/07/2006 18:10:02
Si programas en Visual Fox ..dispongo de un Form
de facturas que traduce números a palabras
desde el formulario y desde el Informe.
si lo necesitas contactame.
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 cantidad a letra

Publicado por Pedro Aguilar (6 intervenciones) el 10/07/2006 18:33:04
Pues si me pudieras hacer el favor de pasarme ese segmento de codigo te lo agradeceria mucho.
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
sin imagen de perfil

RE:Convertir cantidad a letra

Publicado por Ernesto Hernandez (4623 intervenciones) el 10/07/2006 19:23:26
Interesante la parte de lograrlo dentro del Informe.

como seria compañero ?

Podrias ponerno un ejemplo.

Suerte
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
sin imagen de perfil

RE:Convertir cantidad a letra

Publicado por Ernesto Hernandez (4623 intervenciones) el 10/07/2006 19:21:38
Aqui esta de las que estan publicadas en Portalfox

Espero te sirva


Function Convnum(Total)
* Autor: Anselmo Antonio Ortiz Alcocer
* Corrreo: [email protected]
* 26/06/2001
Dimension aUnidades(9), aDecenas(14), aCentenas(10)
aUnidades(1) = 'UN'
aUnidades(2) = 'DOS'
aUnidades(3) = 'TRES'
aUnidades(4) = 'CUATRO'
aUnidades(5) = 'CINCO'
aUnidades(6) = 'SEIS'
aUnidades(7) = 'SIETE'
aUnidades(8) = 'OCHO'
aUnidades(9) = 'NUEVE'
aDecenas(1) = 'DIEZ'
aDecenas(2) = 'ONCE'
aDecenas(3) = 'DOCE'
aDecenas(4) = 'TRECE'
aDecenas(5) = 'CATORCE'
aDecenas(6) = 'QUINCE'
aDecenas(7) = 'VEINTE'
aDecenas(8) = 'TREINTA'
aDecenas(9) = 'CUARENTA'
aDecenas(10) = 'CINCUENTA'
aDecenas(11) = 'SESENTA'
aDecenas(12) = 'SETENTA'
aDecenas(13) = 'OCHENTA'
aDecenas(14) = 'NOVENTA'
aCentenas(1) = 'CIEN'
aCentenas(2) = 'DOSCIENTOS'
aCentenas(3) = 'TRESCIENTOS'
aCentenas(4) = 'CUATROCIENTOS'
aCentenas(5) = 'QUINIENTOS'
aCentenas(6) = 'SEISCIENTOS'
aCentenas(7) = 'SETECIENTOS'
aCentenas(8) = 'OCHOCIENTOS'
aCentenas(9) = 'NOVECIENTOS'

vTotal = str(int(Total), 12)

Do case
Case empty(val(vTotal))
Texto = 'CERO PESOS'

Case val(vTotal) = 1
Texto = 'UN PESO'

Otherwise
tCientos = obt_cant(substr(vTotal,10,3))
tMiles = obt_cant(substr(vTotal,7,3))
tMillones = obt_cant(substr(vTotal,4,3))
tMilMillones = obt_cant(substr(vTotal,1,3))

tCientos = tCientos
tMiles = iif(empty(tMiles), '', ;
iif(tMiles='UN', '', tMiles + ' ') + 'MIL ')
tMillones = iif(empty(tMillones), '', ;
tMillones + ' MILLON' + iif(tMillones='UN', ' ', 'ES ') +;
iif(empty(tMiles + tCientos), 'DE', ''))
tMilMillones = iif(empty(tMilMillones), '', ;
iif(tMilMillones='UN', '', tMilMillones + ' ') + 'MIL ' +;
iif(empty(tMillones), 'MILLONES ', ' ') +;
iif(empty(tMillones + tMiles + tCientos), 'DE', ''))

Texto = strtran(tMilMillones + tMillones + tMiles + tCientos, ' ', ' ') + ' PESOS'
Endcase

Return Texto + iif(!empty(Total), ' CON ' + ;
strtran(transform(int((total - int(total)) * ;
100), '**'), '*', '0') + '/100 M.N.', '')

Function obt_cant(valor)
Public Unidades, Decenas, Centenas

If empty(val(valor))
Return ''
Endif

Store '' to tUnidades, tDecenas, tCentenas
Unidades = int(val(substr(valor,3,1))) && 123
Decenas = int(val(substr(valor,2,1))) && vTotal = 999
Centenas = int(val(substr(valor,1,1))) && ^^^
valor = int(val(valor))

tUnidades = iif(!empty(unidades), aUnidades(Unidades), '')

If !empty(decenas)
If decenas = 1
tDecenas = iif(val(right(str(valor,3),2)) >= 10 and ;
val(right(str(valor,3),2)) <= 15, aDecenas(val(right(str(valor,3),2)) - 9), 'DIECI' + tUnidades)
tUnidades = ''
Else
tDecenas = aDecenas(decenas + 5)
if !empty(unidades)
tDecenas = left(tDecenas, len(tDecenas) - 1) + 'I'
Endif
Endif
Endif

If !empty(centenas)
tCentenas = aCentenas(centenas)
If valor > 100
If centenas = 1
tCentenas = tCentenas + 'TO '
Else
tCentenas = tCentenas + ' '
Endif
Endif
Endif

Return tCentenas + tDecenas + tUnidades

Suerte
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