Hola amuchut soy paúl Illingworth
veras la funcion que te envio más abajo soluciona tu problema de explico lo que tienes que hacer:
1. tienes que crear una función con el nombre que quieras (ej. f_valor_letras)
2. tiene que retornar un String (return value String)
3. Pass by - Value
4. Argument type - Decimal
5. argument name - adc_valor
y listo solo tienes que usar esa función.
//funcion para cambiar de número a letras *****paúl Illingworth *****
string lsa_unidad[] = {"uno","dos","tres","cuatro","cinco","seis","siete","ocho","nueve"}
string lsa_subdec[] = {"once","doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve"}
string lsa_decena[] = {"diez","veinte","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa"}
string lsa_centena[] = {"ciento","doscientos","trescientos","cuatrocientos","quinientos","seiscientos","setecientos","ochocientos","novecientos"}
integer i, li_labv, lia_valor[20]
string ls_valor, ls_vl
ls_valor = string(Truncate (adc_valor,0))
ls_valor = fill(' ',20 - len(ls_valor)) + ls_valor
for i=20 to 1 step -1
if mid(ls_valor,i,1) = ' ' then
li_labv=20 - i
exit
end if
lia_valor[20 - i + 1] = integer(mid(ls_valor,i,1))
end for
for i = li_labv + 1 to 20
lia_valor
=0
end for
ls_vl = ''
for i=1 to li_labv
CHOOSE CASE i
CASE 4,10
IF lia_valor+lia_valor[i+1]+lia_valor[i+2] <> 0 THEN ls_vl = 'mil ' + ls_vl
CASE 7
IF lia_valor=1 THEN ls_vl = 'millon ' + ls_vl else ls_vl = 'millones ' + ls_vl
END CHOOSE
CHOOSE CASE i
CASE 1,4,7,10
IF lia_valor=0 THEN CONTINUE
IF lia_valor[I+1]=1 THEN
ls_vl=lsa_subdec[lia_valor]+' '+ls_vl
ELSE
IF lia_valor=1 AND i > 1 THEN
IF i=4 or i=7 THEN ls_vl = "un " + ls_vl
ELSE
IF lia_valor[i+1]=0 THEN
ls_vl= lsa_unidad[lia_valor]+' '+ls_vl
ELSE
ls_vl='y '+lsa_unidad[lia_valor]+' '+ls_vl
END IF
END IF
END IF
case 2,5,8,11
IF (lia_valor=1 AND lia_valor[i - 1] <> 0) OR lia_valor=0 THEN CONTINUE
ls_vl=lsa_decena[lia_valor]+' '+ls_vl
case 3,6,9,12
IF lia_valor=0 THEN CONTINUE
IF lia_valor=1 AND lia_valor[i - 1]=0 AND lia_valor[i - 2]=0 THEN
ls_vl="cien"+' '+ls_vl
ELSE
ls_vl=lsa_centena[lia_valor]+' '+ls_vl
END IF
END CHOOSE
END FOR
ls_vl=Upper ( left(ls_vl,1) ) + mid(ls_vl,2) + ' 00/100'
return ls_vl
//fin de la función
pd. Visita la página de mi empresa esta muy interesante
http://www.jbmconsultores.com
Att.
Paúl Illingworth
Ecuador - Sur América
Tungurahua - Ambato
Avisame si te sirvió o si tienes una duda te la responderé.