GeneXus - Pasar un número a palabras

 
Vista:

Pasar un número a palabras

Publicado por Jose Luis (6 intervenciones) el 06/05/2005 06:36:15
Hola a todos, ojalá puedan ayudarme. Necesito pasar un valor numérico a palabras, lo que pasa es que en una factura deben ir el valor numérico más la transformación de ese número en palabras. Estoy trabajando en GX 8.0.

Ejemplo:
Si el total es 4.500 debo transformalo a "CUATRO MIL QUINIENTOS"

Gracias de antemano.
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:Pasar un número a palabras

Publicado por gabriel (25 intervenciones) el 06/05/2005 14:17:34
en estos links hay ref, al tema que queres
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=17&texto=Clipper/FiveWin&n1=219434&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=17&texto=Clipper/FiveWin&n1=137316&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
http://www.lawebdelprogramador.com/news/mostrar_new.php?id=17&texto=Clipper/FiveWin&n1=87971&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
http://www.lawebdelprogramador.com/codigo/
espero te sirva saludos gabriel
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:Pasar un número a palabras

Publicado por Antonio (1 intervención) el 06/05/2005 23:58:29
Yo tengo una base de conocimiento de un Modulo de facturacion y lo que realizo es una llamada a un programa externo donde lo transforma a letras. si lo necesitas me confirmas para ayudarte...?
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

Respuesta a Antonio... Números a palabras

Publicado por Jose Luis (6 intervenciones) el 07/05/2005 07:49:47
Hola Antonio, gracias por responder mi duda... sería genial si pudieras ayudarme con este problemita, realmente estaría muy agradecido. Todo lo que pudieras enviarme será de gran ayuda.
De antemano, muchas gracias.
Atte,

Jose Luis...

NOTA: no pude enviarte un correo porque me dice que tu dirección no existe.
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:Respuesta a Antonio... Números a palabras

Publicado por Federico (120 intervenciones) el 13/05/2005 19:02:06
Jose Luis te paso el Codigo
Parametros

parm(in: &importe, out: &letra1, out: &letra2, in: &long_num ,&leyPrevia);

Source

&v1(1)='UN '
&v1(2)='DOS '
&v1(3)='TRES '
&v1(4)='CUATRO '
&v1(5)='CINCO '
&v1(6)='SEIS '
&v1(7)='SIETE '
&v1(8)='OCHO '
&v1(9)='NUEVE '
&v1(10)='DIEZ '
&v1(11)='ONCE '
&v1(12)='DOCE '
&v1(13)='TRECE '
&v1(14)='CATORCE '
&v1(15)='QUINCE '
&v1(16)='DIECISEIS '
&v1(17)='DIECISIETE '
&v1(18)='DIECIOCHO '
&v1(19)='DIECINUEVE '
&v1(20)='VEINTE '
&v2(1)='UN '
&v2(2)='VEINTI'
&v2(3)='TREINTA '
&v2(4)='CUARENTA '
&v2(5)='CINCUENTA '
&v2(6)='SESENTA '
&v2(7)='SETENTA '
&v2(8)='OCHENTA '
&v2(9)='NOVENTA '
&v3(1)='CIENTO '
&v3(2)='DOSCIENTOS '
&v3(3)='TRESCIENTOS '
&v3(4)='CUATROCIENTOS '
&v3(5)='QUINIENTOS '
&v3(6)='SEISCIENTOS '
&v3(7)='SETECIENTOS '
&v3(8)='OCHOCIENTOS '
&v3(9)='NOVECIENTOS '

&palabra = trim(str(&importe,15,2))

Do while len(&palabra) < 15
&palabra = '0' + &palabra
enddo

&d4 = val(trim(substr(&palabra, 1, 1)))
&e4 = val(trim(substr(&palabra, 2, 2)))
&e4a = val(trim(substr(&palabra, 2, 1)))
&e4b = val(trim(substr(&palabra, 3, 1)))
&d3 = val(trim(substr(&palabra, 4, 1)))
&e3 = val(trim(substr(&palabra, 5, 2)))
&e3a = val(trim(substr(&palabra, 5, 1)))
&e3b = val(trim(substr(&palabra, 6, 1)))
&d2 = val(trim(substr(&palabra, 7, 1)))
&e2 = val(trim(substr(&palabra, 8, 2)))
&e2a = val(trim(substr(&palabra, 8, 1)))
&e2b = val(trim(substr(&palabra, 9, 1)))
&d1 = val(trim(substr(&palabra, 10, 1)))
&e1 = val(trim(substr(&palabra, 11, 2)))
&e1a = val(trim(substr(&palabra, 11, 1)))
&e1b = val(trim(substr(&palabra, 12, 1)))
¢ena = trim(substr(&palabra, 14, 2))

if &d4 = 1 .and. &e4 = 0
&letras = &letras + 'CIEN '
else
if &d4 <> 0
&letras = &letras + &v3(&d4)
endif
endif

if &e4 <> 0
if &e4 <= 20
&letras = &letras + &v1(&e4) + 'MIL '
else
if &e4a >= 2 .and. &e4b = 0
&letras = &letras + &v2(&e4a)
else
&letras = &letras + &v2(&e4a) + 'Y '
endif
if &e4b <> 0
&letras = &letras + &v1(&e4b)
endif
&letras = &letras + 'MIL '
endif
else
if &d4 <> 0
&letras = &letras + 'MIL '
endif
endif

if &d3 = 1 .and. &e3 = 0
&letras = &letras + 'CIEN '
else
if &d3 <> 0
&letras = &letras + &v3(&d3)
endif
endif

if &e3 <> 0
if &e3 <= 20
if &d3 = 0 .and. &e3 = 1
&letras = &letras + &v1(&e3) + 'MILLON '
else
&letras = &letras + &v1(&e3) + 'MILLONES '
endif
else
if &e3a >= 2 .and. &e3b = 0
&letras = &letras + &v2(&e3a)
else
&letras = &letras + &v2(&e3a) + 'Y '
endif
if &e3b <> 0
&letras = &letras + &v1(&e3b)
endif
&letras = &letras + 'MILLONES '
endif
else
if &d3 <> 0
&letras = &letras + 'MILLONES '
endif
endif

if &d2 = 1 .and. &e2 = 0
&letras = &letras + 'CIEN '
else
if &d2 <> 0
&letras = &letras + &v3(&d2)
endif
endif

if &e2 <> 0
if &e2 <= 20
&letras = &letras + &v1(&e2) + 'MIL '
else
if &e2a >= 2 .and. &e3b = 0
&letras = &letras + &v2(&e2a)
else
&letras = &letras + &v2(&e2a) + 'Y '
endif
if &e2b <> 0
&letras = &letras + &v1(&e2b)
endif
&letras = &letras + 'MIL '
endif
else
if &d2 <> 0
&letras = &letras + 'MIL '
endif
endif

if &d1 = 1 .and. &e1 = 0
&letras = &letras + 'CIEN '
else
if &d1 <> 0
&letras = &letras + &v3(&d1)
endif
endif

if &e1 <> 0
&v1(1)= 'UNO '
if &e1 <= 20
&letras = &letras + &v1(&e1)
else
if &e1a >= 2 .and. &e1b = 0
&letras = &letras + &v2(&e1a)
else
if &e1a = 2
&letras = &letras + Trim(&v2(&e1a) )
else
&letras = &letras + &v2(&e1a) + 'Y '
EndIf
endif
if &e1b <> 0
&letras = &letras + &v1(&e1b)
endif
endif
endif

if ¢ena <> '00'
&letras = trim(&letras) + ' CON ' + ¢ena + '/100'
endif

&letras = trim(&leyPrevia) + space(1) + trim(&letras)

&letra1 = GXGetMLi(&letras,1,&long_num)
if len(&letras) > &long_num
&letra2 = GXGetMLi(&letras ,2 ,&long_num)
else
&letra2 = ' '
endif

Saludos Atte
Federico
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

Consulta

Publicado por Anthony (4 intervenciones) el 04/07/2012 16:32:08
Hola Federico, te hago una pregunta, la variable &leyprevia, para que es?
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

RE:Pasar un número a palabras

Publicado por Ivan (24 intervenciones) el 02/09/2009 21:02:52
Hola que tal Federico, oye estoy algo atorado con GeneXus. Crees que me podrias mandar el proceso en el cual se transforma de numeros a letras?... Ojala que si, de cualquier forma gracias, chao.
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:Pasar un número a palabras

Publicado por Aluziner (3 intervenciones) el 14/05/2005 18:33:42
En GxOpen hay un ejemplo que te puedes bajar:

http://www.gxopen.com.uy
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