FoxPro/Visual FoxPro - URGENTE * Conversion de numeros a texto * URGENTE

 
Vista:

URGENTE * Conversion de numeros a texto * URGENTE

Publicado por edgar calzada (7 intervenciones) el 11/07/2006 18:49:25
Tengo este programa de Visual Fox Pro, pero no encuentro como se le introducen los numeros y por donde arroja el resultado, alguien me lo podria explicar por favor.
O si conocen alguna otra forma de hacerlo les agradesco que me digan como.
Gracias
**************************************************************************************
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 pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:URGENTE * Conversion de numeros a texto * URGEN

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/07/2006 19:20:51
Es una funcion sabes como es ?
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por juan (537 intervenciones) el 11/07/2006 21:00:54
Si estás atorado con eso te puedo enviar un ejemplo
que hice en Visual Fox.
esta hecho a prueba de Wuebones..!!
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/07/2006 21:21:39
A ver juan me podrias mandar ese ejemplo ...

No e sque sea webon ;-) pero me llama la curiosidad saber como esta hecho :-)
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por juan (537 intervenciones) el 11/07/2006 23:03:41
bién contacta mi correo para enviarte el form
que deletrea números a palabra ..es sobre una
factura que hice ..desde luego tuve que darme la
paja de hacer esa función.-

Saludos
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por Ernesto Hernandez (4623 intervenciones) el 12/07/2006 02:17:03
Hacerlo no tiene ciencia solo quiero saber como lo hiciste hay muchas formas de hacerlo de hecho yo tengo una funcion dentro de una forma en una clase y asi lopuedo obtener cuando sea desde donde sea :-)
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por JUAN (537 intervenciones) el 12/07/2006 15:56:16
Resp.tenía na función cuando años atras Programaba
en Ca-Clipper ..esta la mejore un poco es decir para que
fuera de 9 digitos(999,999,999)y pueda llegar a Mil Millones
como es un Prg ..el Form del Visual FoxPro la llamo con un
procedimiento y le enlazo la variable a deletrear.

Ej. Public suma3
Public lcletra
store space(90)to lcletra
suma3=0
suma3=Thisform.Pageframe1.Page1.Text10.value

Thisform.monto2letra() //Aqui llamo el procedimiento
este me conecta con el Prg.
Thisform.Pageframe1.Page1.Label15.Caption=Lcletra

ahora si digito por teclado 1.000.000
el label 5 que tiene asignada la variable Lcletra genera esto desde
el Form de Visual FoxPro
UN MILLON

bueno no pretendo ufanarme de los que saben menos que
nosotros sino que no son capaces de ibanar una idea..yo
en mis tiempos como cuelquir otro ,tambien aprendí de otras
personas y es por eso soy hoy dia un flamante técnico Informá-
tico .
Saludos Cólega .
Juan
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:URGENTE * Conversion de numeros a texto * URGEN

Publicado por Ernesto Hernandez (4623 intervenciones) el 12/07/2006 17:54:50
Bien por esa juan ...


y por que no integras el prg a tu forma base como un metodo y asi lo podrias llamar tambien en cualquier momento y lo tienes "en linea" para cuando necesites hacer el calculo

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

Juan-aldevaran_527@hotmail Me interesa tu ejemplo

Publicado por edgar calzada (7 intervenciones) el 12/07/2006 18:33:41
Me interesa tu ejemplo. Me lo puedes enviar y mas o menos explicarmelo como es por favor y muchas 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