Inicio > Visual Fox Pro > keystonesys > Convertir numero a letras en un formulario

Convertir numero a letras en un formulario

Experto:
Usuario:
Fecha: 08/11/2009
Valoración: (5,00 sobre 5) Categoría: Visual Fox Pro
15/10/2009
dioherelo, usuario preguntando en Visual Fox Pro
Usuario
Hola estoy diseñando un formulario para facturacion y quiero utilizar un programa que me comvierte numeros a letras. Quisiera saver si alguien me puede ayudar a decirme como utilizo este programa en un formulario. Por la atencion prestada muchas gracias.
15/10/2009
dioherelo, experto respondiendo en Visual Fox Pro
Experto
Hola, yo respondi la misma pregunta hace pocos dias. De igual manera te paso el programita:
Este código lo podes poner en un form pero te recomiento ponerlo en un prg asi lo usas como una funcion.
 
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 parametro que le envias debe ser numérico.
 
Espero haberte podido ayudar
Si es asi, por favor cerrá la pregunta.
 
Christian
Keystone
www.keystone.com.ar
 
25/10/2009
dioherelo, experto respondiendo en Visual Fox Pro
Experto
Hola, podrias cerrar la pregunta?
08/11/2009
dioherelo, usuario preguntando en Visual Fox Pro
Usuario
QUE TAL AMIGO DE VERDAD ME FUE DE MUCHA AYUDA EL PROGRAMA QUE ME MANDASTE YA QUE ESTAVA HACIENDO UN FORMULARIO QUE AHORA UTILISO 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.
Enlaces patrocinados