Amiga Vicky :
A continuacion te muestro una rutina que vengo utilizando en mis proyectos, la forma de utilizarlo es de la siguiente forma :
Thisform.TEXT2.Value = NTOL(Thisform.txtTot_Pago.Value,"NUEVOS SOLES")
Al final puedes cambiarle el nombre de la moneda...
El siguiente codigo lo guardas dentro de un programa y lo invocas de esta forma.
SET PROCEDURE TO "C:\CONTROL\RUTINAS2.PRG"
FUNCTION Ntol
PARA pnum, pmnd, pupp
PRIV knum, kmnd, klet,kupp
DECL uni(20), dec(10), cie(10), mil(1), mll(1), bll(1)
PRIV letra, centimos, kint, kcnt, kcntn
*--
knum=iif(empt(pnum),0,pnum)
kupp=iif(empt(pupp),0,pupp)
kmnd=iif(empt(pmnd),"",allt(pmnd))
klet="a y "
*--
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 tresc cuatroc quin seisc 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(righ(kmnd,2)="as","as","os"))
endfor
*--
mil(1) ="mil"
mll(1) ="millones"
bll(1) ="billones"
*--
kint =int(knum)
kcnt =int((knum-int(knum))*100)
kcntn='CON '+padl(ALLTRIM(STR(kcnt)),2,'0')+'/100'
*--
letra =allt(pntol(kint,iif(empt(pmnd),0,1)))
centimos=iif(kcnt=0,"","con "+pntol(kcnt,1)+" centimo"+iif(kcnt=1,"","s"))
endcase
IF kupp>0
letra=UPPER(letra)
ELSE
letra=UPPER(SUBSTR(letra,1,1))+SUBSTR(letra,2,LEN(letra))
ENDIF
*--
RETURN letra + " "+kcntn+" "+kmnd
*******************************************************************
FUNCTION 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")
palabra=iif(empt(fm),l_uni1,"UNO")
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 fnum=100
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="UN " + LEFT(mil(1),4)+" "+pntol(fnum-1000,fm)
* 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
*--
Return UPPER(Alltrim(palabra))
Saludos,
Gabriel
(Lima-Perú)