Power Builder - Convertit a letras Peru

 
Vista:

Convertit a letras Peru

Publicado por Jose Lobaton (7 intervenciones) el 29/04/2005 02:42:06
Saludos amigos foristas, he bajado un archivo q consta de 4 funciones para convertir numeros a letras y quiero ideas de otras formas de como realizar esto....y colocar el 00/100 nuevos soles caso de Peru

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:Convertit a letras Peru

Publicado por Asgard (1957 intervenciones) el 29/04/2005 15:34:25
En codigo fuente de esta seccion encontraras las funciones necesarias, pudiendo adaptarla a cualquier tipo de moneda.
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:Convertit a letras Peru

Publicado por Jose Lobaton (7 intervenciones) el 03/05/2005 00:26:40
Si pero todas dan error alguien sabe un funcion realmente correcta o algun objeto...por favor ayuda e inculos con los decimales

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:Convertit a letras Peru

Publicado por bangg (13 intervenciones) el 11/05/2005 00:40:23
mira esta funcion a mi me sirvio de mucho adaptala a tu tipo de moneda

// Descripcion: Convierte un numero en letras, util para imprimir el precio de una factura en letras.

integer li_len
integer li_i
integer li_index
decimal ldec_numdesc[]
decimal ldec_numero
string ls_numero
string ls_decimal
string ls_numdesc[]
string ls_temp
string ls_desc[4,20]
string ls_valor1[] = {' mil ', ' millones ', ' billones '}
string ls_valor2[] = {' mil ', ' millón ', ' billón '}

ls_desc[1,1] = 'un'
ls_desc[1,2] = 'dos'
ls_desc[1,3] = 'tres'
ls_desc[1,4] = 'cuatro'
ls_desc[1,5] = 'cinco'
ls_desc[1,6] = 'seis'
ls_desc[1,7] = 'siete'
ls_desc[1,8] = 'ocho'
ls_desc[1,9] = 'nueve'
ls_desc[1,10] = 'diez'
ls_desc[1,11] = 'once'
ls_desc[1,12] = 'doce'
ls_desc[1,13] = 'trece'
ls_desc[1,14] = 'catorce'
ls_desc[1,15] = 'quince'
ls_desc[1,16] = 'dieciseis'
ls_desc[1,17] = 'diecisiete'
ls_desc[1,18] = 'dieciocho'
ls_desc[1,19] = 'diecinueve'

ls_desc[2,1] = 'diez'
ls_desc[2,2] = 'veinte'
ls_desc[2,3] = 'treinta'
ls_desc[2,4] = 'cuarenta'
ls_desc[2,5] = 'cincuenta'
ls_desc[2,6] = 'sesenta'
ls_desc[2,7] = 'setenta'
ls_desc[2,8] = 'ochenta'
ls_desc[2,9] = 'noventa'

ls_desc[3,1] = 'ciento'
ls_desc[3,2] = 'doscientos'
ls_desc[3,3] = 'trescientos'
ls_desc[3,4] = 'cuatrocientos'
ls_desc[3,5] = 'quinientos'
ls_desc[3,6] = 'seicientos'
ls_desc[3,7] = 'setecientos'
ls_desc[3,8] = 'ochocientos'
ls_desc[3,9] = 'novecientos'

ls_numero = string(adec_numero, '##########')

do
li_len ++
ls_numdesc[li_len] = right( ls_numero, 3 )
ls_numero = left( ls_numero, len(ls_numero) -3 )
loop while len(ls_numero) > 0

ls_numero = ''
for li_i = li_len to 1 step -1
choose case len(ls_numdesc[li_i])
case 1
ls_numero += ls_desc[1,integer(ls_numdesc[li_i])]
case 2
if integer(ls_numdesc[li_i])<>0 then
ls_temp = right( ls_numdesc[li_i], 2 )
if integer(ls_temp) <> 0 then
if integer(left(ls_temp,1)) > 1 then
ls_numero += ls_desc[2,integer(left(ls_temp,1))]
if integer(right(ls_temp,1)) <> 0 then
ls_numero += ' y ' + ls_desc[1,integer(right(ls_temp,1))]
else
ls_numero += ' '
end if
else
if integer(left(ls_temp,1)) = 1 then
ls_numero += ls_desc[1,integer(right(ls_temp,2))]
else
if integer(right(ls_temp,1)) <> 0 then
ls_numero += ls_desc[1,integer(right(ls_temp,1))]
else
ls_numero += ' '
end if
end if
end if
end if
end if
case 3
if integer(ls_numdesc[li_i]) > 0 then
if integer(ls_numdesc[li_i]) = 100 then
ls_numero += 'cien'
else
if integer(left(ls_numdesc[li_i],1)) <> 0 then
ls_numero += ls_desc[3,integer(left(ls_numdesc[li_i],1))]
end if
end if
if integer(right(ls_numdesc[li_i],2))<> 0 then
ls_numero += ' '
ls_temp = right( ls_numdesc[li_i], 2 )
if integer(ls_temp) <> 0 then
if integer(left(ls_temp,1)) > 1 then
ls_numero += ls_desc[2,integer(left(ls_temp,1))]
if integer(right(ls_temp,1)) <> 0 then
ls_numero += ' y ' + ls_desc[1,integer(right(ls_temp,1))]
else
ls_numero += ' '
end if
else
if integer(left(ls_temp,1)) = 1 then
ls_numero += ls_desc[1,integer(right(ls_temp,2))]
else
if integer(right(ls_temp,1)) <> 0 then
ls_numero += ls_desc[1,integer(right(ls_temp,1))]
else
ls_numero += ' '
end if
end if
end if
end if
end if
end if
end choose
if integer(ls_numdesc[li_i]) <> 0 then
if li_i > 1 then
if mod(li_i -1, upperbound(ls_valor1)) = 0 then
li_index = upperbound(ls_valor1)
else
li_index = mod(li_i -1, upperbound(ls_valor1))
end if
if integer(ls_numdesc[li_i]) = 1 then
ls_numero += ls_valor2[li_index]
else
ls_numero += ls_valor1[li_index]
end if
end if
end if
next
if pos( string(adec_numero), '.' ) > 0 then
ls_decimal = right(string(adec_numero), len(string(adec_numero)) -pos(string(adec_numero), '.'))
ls_decimal += '/1' + fill('0', len(ls_decimal) )
else
ls_decimal += '00/100'
end if

return ls_numero + ' con ' + ls_decimal
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