RE:Respuesta a Antonio... Números a palabras
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