Funcion letras

10/11/2004 - 17:03 por abohorquez | Informe spam
Amigos:

alguien me podria ayudar con una funcion que convierta el
total de una factura a letras, algo asi:

$ 152.520
Son: CIENTO CINCUENTA Y DOS MIL QUINIENTOS VENTE PESOS...


Gracias a todoas


Andys Bohorquez
Caratgena-Colombia

Preguntas similare

Leer las respuestas

#1 Progamador T-101
10/11/2004 - 21:14 | Informe spam
Amigo Marga Y Pega Todo El codigo en un progama llamados Numletra.prg
incluso esta listoa para correr con una cifra de 15 millones algos asi..
y listo pones a CORRES EL ZORRO

Recibo Comentarios


*Función : NtoL
* Convierte un numero a letras, adaptado para moneda y
decimales(Centavos)
*
*Sintaxis:
* =NtoL(pnum, pmnd, plet)
*
*Parametros:
* pnum = Número a convertir (123.46)
* pmnd = nombre de la moneda o producto
("pesetas/peseta","euros/euro","copas/copa", etc...)
* plet = manera literal de escribir (por defecto esta ejemplo:
58=cincuenta y ocho)
*
*Ejemplos:
* ? NtoL(351.21) = trescientos cincuenta y uno con veintiun
Centavos
* ? NtoL(351.21,"Pesos/Pesos") = trescientas cincuenta y una
pesetas con veintiun Pesos
* ? NtoL(1,"copas/copa") = una copa && Femenino / Masculino
* ? NtoL(351.21,,1)= trescientos cincuentiuno con veintiun Centavos
*
*Retorno:
* El numero en caracter
*
*Creación:
* Leonardo Fabio Cadena Agosto 8 DE 2004
* Bogota ,Colombia
* Astutos como el Zorro Habemos Pocos.. CUIDEMOS Visual Fox Pues
A muchos nos Ha Dado De Comer
* Y nos seguira dando por rato..
*
***************************************
public cif_let_
cifra = 15345450.00 && Ingresa aqui tu cifra...
cif_let_ = Ntol(Cifra,"Pesos")
wait window cif_let_


Func NtoL
para pnum, pmnd, plet
priv knum, kmnd, klet
decl uni(20), dec(10), cie(10), mil(1), mll(1), bll(1)
priv letra, Centavos, kint, kcnt, kmn1, kmn2, ksex
*--
knum=iif(empt(pnum),0,pnum)
kmnd=iif(empt(pmnd),"",allt(pmnd))
klet=iif(empt(plet),"a y ","i")
kmn1=iif(at("/",allt(kmnd))=0,kmnd,left(kmnd,at("/",allt(kmnd))-1))
kmn2=right(kmnd,len(kmnd)-at("/",allt(kmnd)))
ksex=iif(right(kmn1,2)="as" or right(kmn2,1)="a",.f.,.t.)
*--
do case
case knum=0
letra=allt("cero"+" "+kmnd)
othe
l_uni1="Uno Dos Tres Cuatro Cinco Seis Siete
Ocho Nueve Diez "
l_uni2="Once Doce Trece Catorce Quince Dieciseis
DiecisieteDieciocho Diecinueveveinte "
l_dec ="Diez Veint Treint Cuarent Cincuent Sesent Setent
Ochent Novent "
l_cie ="C Dosc Trec Cuatroc Quin Seic Setec
Ochoc Novec "
*--
for i=1 to 10
uni(i) =allt(subs(l_uni1,10*(i-1)+1,10))
uni(i+10)=allt(subs(l_uni2,10*(i-1)+1,10))
dec(i) =allt(subs(l_dec ,10*(i-1)+1,10))
cie(i) =allt(subs(l_cie
,10*(i-1)+1,10))+"ient"+iif(i=1,"o",iif(ksex,"os","as"))
endfor
*--
mil(1) ="Mil"
mll(1) ="Millones"
bll(1) ="Billones"
*--
kint =int(knum)
kcnt =int((knum-int(knum))*100)
*--
letra =allt(pntol(kint,iif(empt(pmnd),0,1))+" "+iif(kint=1,kmn2,kmn1))
Centavos=iif(kcnt=0,"","Con "+pntol(kcnt,1)+" Centavo"+iif(kcnt=1,"","s"))
endcase
*--
retu letra+" "+Centavos

*******************************************************************

Func pntol
para fnum,fm
local llet
*--
fnum=int(fnum)
*--
do case
case fnum=0
palabra=""
case fnum=1
palabra=iif(empt(fm),uni(1),"un"+iif(ksex,"","a"))
case betw(fnum,2,20)
palabra=uni(fnum)
case betw(fnum,21,99)
llet=iif(betw(fnum,21,29),"i",klet)
palabra=dec(fnum/10)

palabra=palabra+iif(fnum-int(fnum/10)*10=0,"a",llet+pntol(fnum-int(fnum/10)*10,fm))
case fnum0
palabra=left(cie(1),4)
case betw(fnum,101,999)
palabra=cie(fnum/100)+" "+pntol(fnum-int(fnum/100)*100,fm)
case betw(fnum,1000,1999)
palabra=mil(1)+" "+pntol(fnum-1000,fm)
case betw(fnum,2000,999999)
palabra=pntol(fnum/1000,1)+" "+mil(1)+" "+pntol(fnum-int(fnum/1000)*1000,fm)
case betw(fnum,1000000,1999999)
palabra="Un "+left(mll(1),6)+" "+pntol(fnum-1000000,fm)
case betw(fnum,2000000,999999999999)
palabra=pntol(fnum/1000000,1)+" "+mll(1)+"
"+pntol(fnum-int(fnum/1000000)*1000000,fm)
case betw(fnum,1000000000000,1999999999999)
palabra="Un "+left(bll(1),6)+" "+pntol(fnum-1000000000000,fm)
case betw(fnum,2000000000000,99999999999999999)
palabra=pntol(fnum/1000000000000,1)+" "+bll(1)+"
"+pntol(fnum-int(fnum/1000000000000)*1000000000000)
endcase
*--
retu allt(palabra)
Respuesta Responder a este mensaje
#2 Luis María Guayán
10/11/2004 - 21:43 | Informe spam
Mira en PortalFox que hay varias rutinas:

http://www.portalfox.com/article.php?sid$

http://www.portalfox.com/article.php?sid8

http://www.portalfox.com/article.php?sid06

http://www.portalfox.com/article.php?sidT2

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
""
escribió en el mensaje news:508d01c4c73e$ddec30c0$
Amigos:

alguien me podria ayudar con una funcion que convierta el
total de una factura a letras, algo asi:

$ 152.520
Son: CIENTO CINCUENTA Y DOS MIL QUINIENTOS VENTE PESOS...


Gracias a todoas


Andys Bohorquez
Caratgena-Colombia
Respuesta Responder a este mensaje
#3 abohorquez
11/11/2004 - 14:51 | Informe spam
Muy buena ayuda...

Andys Bohorquez
Cartagena-Colombia
Amigos:

alguien me podria ayudar con una funcion que convierta


el
total de una factura a letras, algo asi:

$ 152.520
Son: CIENTO CINCUENTA Y DOS MIL QUINIENTOS VENTE PESOS...


Gracias a todoas


Andys Bohorquez
Caratgena-Colombia
.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida