Convertir numero a letras en un formulario

Hola estoy diseñando un formulario para facturación y quiero utilizar un programa que me convierte números a letras. Quisiera saber si alguien me puede ayudar a decirme como utilizo este programa en un formulario. Por la atención prestada muchas gracias.

1 Respuesta

Respuesta
1
Yo respondí la misma pregunta hace pocos días. De igual manera te paso el programita:
Este código lo podes poner en un form pero te recomiendo ponerlo en un prg así lo usas como una función.
Podes hacer un prg llamado NumLetras
y lo llamas en tu formulario asi:  thisform.miTextBox.value=numLetras(125.33) por ejemplo
Cuando generes tu exe, acordate de incluir en tu proyecto el programa porque muchas veces no lo incluye en forma automática.
Si de igual manera lo queres poner en un form, solo basta con hacer un metodo y listo, lo podes llamar asi:  thisform.textBox.value=thisform.miMetodo(123.33)
*********************************
parameter xDiceNum
diceCen=''
diceDec=''
diceUni=''
reto=''
NumTex=str(xDiceNum,12,2)
millones=val(substr(numTex,1,3))
miles=val(substr(numTex,4,3))
ciento=val(substr(numTex,7,3))
deci=(xDiceNum-int(xDiceNum))*100
if deci=0
deci='.-'
else
deci=' con '+alltrim(str(deci,4,0))+'/100'
endif
if millones#0
tex=traeTex(millones)
if tex='uno'
tex='un millon '
else
tex=tex+' millones '
endif
reto=tex
endif
if miles#0
tex=traeTex(miles)
if right(tex,3)='uno'
if len(tex)#3
tex=left(tex,len(tex)-3)+'ún'
else
tex='un'
endif
endif
reto=reto+tex+' mil '
endif
if ciento#0
reto=reto+traeTex(ciento)
endif
if empty(reto)
reto='cero'
endif
reto=reto+deci
return upper(left(reto,1))+right(reto,len(reto)-1)
procedure traeTex
parameter queNum
diceCen=''
diceDec=''
diceUni=''
centena=int(queNum/100)
decena=int((queNum-(centena*100))/10)
unidad=int(val(right(str(queNum,9,0),1)))
do case
case centena=0
diceCen=''
case centena=1 and decena=0 and unidad=0
diceCen='cien '
case centena=1 and (decena#0 or unidad#0)
diceCen='ciento '
case centena=2
diceCen='doscientos '
case centena=3
diceCen='trescientos '
case centena=4
diceCen='cuatrocientos '
case centena=5
diceCen='quinientos '
case centena=6
diceCen='seiscientos '
case centena=7
diceCen='setecientos '
case centena=8
diceCen='ochocientos '
case centena=9
diceCen='novecientos '
endcase
do case
case decena=0
diceDec=''
case decena=1 and unidad=0
diceDec='diez '
case decena=2 and unidad=0
diceDec='veinte '
case decena=2 and unidad#0
diceDec='veinti'
case decena=3
diceDec='treinta y '
case decena=4
diceDec='cuarenta y '
case decena=5
diceDec='cincuenta y '
case decena=6
diceDec='sesenta y '
case decena=7
diceDec='setenta y '
case decena=8
diceDec='ochenta y '
case decena=9
diceDec='noventa y '
endcase
do case
case unidad=0 and decena#1
diceUni=''
case unidad=1 and decena#1
diceUni='uno '
case unidad=2 and decena#1
diceUni='dos '
case unidad=3 and decena#1
diceUni='tres '
case unidad=4 and decena#1
diceUni='cuatro '
case unidad=5 and decena#1
diceUni='cinco '
case unidad=6 and decena#1
diceUni='seis '
case unidad=7 and decena#1
diceUni='siete '
case unidad=8 and decena#1
diceUni='ocho '
case unidad=9 and decena#1
diceUni='nueve '
case unidad=1 and decena=1
diceUni='once '
case unidad=2 and decena=1
diceUni='doce '
case unidad=3 and decena=1
diceUni='trece '
case unidad=4 and decena=1
diceUni='catorce '
case unidad=5 and decena=1
diceUni='quince '
case unidad=6 and decena=1
diceUni='dieciseis '
case unidad=7 and decena=1
diceUni='diecisiete '
case unidad=8 and decena=1
diceUni='dieciocho '
case unidad=9 and decena=1
diceUni='diecinueve '
endcase
queVuelve=diceCen+diceDec+diceUni
if right(queVuelve,2)='y '
queVuelve=left(queVuelve,len(queVuelve)-3)
endif
return alltrim(queVuelve)
*****************************************
Siempre el parámetro que le envías debe ser numérico.
Espero haberte podido ayudar
Si es así, por favor cerrá la pregunta.
¿Podrías cerrar la pregunta?
Que tal amigo de verdad me fue de mucha ayuda el programa que me mandaste ya que estaba haciendo un formulario que ahora utilizo en mi trabajo. Te agradezco enormemente la ayuda que me diste ya que no contaba con los conocimientos para hacer dicho programa y ponerlo en un formulario. De antemano te doy las gracias y te mando muchos saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas