Cifras en numero convertirlas en Cantidad en letra

Que tal, quisiera saber si me pueden ayudar, estoy trabajando en VFP y tengo la necesidad e convertir las cifras de numero a letra, es decir 1500 pasarlas a "mil quinientos", gracias
Respuesta
1
Utilice el siguiente código: text1 es el texto donde esta la cifra y text2 donde se genera el texto.
public pvalor
pvalor = val(thisform.text1.value)
if pvalor <= 0
Return
Endif
* Le devuelvo la parte enetra del Valor a la variable EnteroV
enterov=int(pvalor)
n = ""
n1 = "UN"
n2 = "DOS"
n3 = "TRES"
n4 = "CUATRO"
n5 = "CINCO"
n6 = "SEIS"
n7 = "SIETE"
n8 = "OCHO"
n9 = "NUEVE"
n10 = "DIEZ"
n11 = "ONCE"
n12 = "DOCE"
n13 = "TRECE"
n14 = "CATORCE"
n15 = "QUINCE"
n16 = "DIECISEIS"
n17 = "DIECISIETE"
n18 = "DIECIOCHO"
n19 = "DIECINUEVE"
n20 = "VEINTE"
n30 = "TREINTA"
n40 = "CUARENTA"
n50 = "CINCUENTA"
n60 = "SESENTA"
n70 = "SETENTA"
n80 = "OCHENTA"
n90 = "NOVENTA"
if enterov<> 100
        n100 = "CIENTO"
endif
If enterov = 100
        n100="CIEN"
endif
n200 = "DOSCIENTOS"
n300 = "TRESCIENTOS"
n400 = "CUATROCIENTOS"
n500 = "QUINIENTOS"
n600 = "SEISCIENTOS"
n700 = "SETECIENTOS"
n800 = "OCHOCIENTOS"
n900 = "NOVECIENTOS"
contador= 1
inicio = 1
cadena = str(enterov,9)
nump = " "
Do while contador<4
          subcadena= substr(cadena,inicio, 3)
          centena = substr(subcadena,1,1)+"00"
          decena = substr(subcadena,2,2)
          unidad = substr(subcadena,3,1)
          if val(subcadena) > 99
                    nump = nump+ n&centena+ " "
          endif (subcadena> 99)
           T = val(decena)
           if T > 0
                     do case
                      case (int(T/10.0) = T/10.0) .OR. (T > 9 .and. T < 20)
                      nump = nump + n&decena
                       case T > 9 .and. (int(T/10.0) # T/10.0)
                       decena= substr(decena,1,1) + "0"
                       if decena # "20"
                                   nump= nump+ n&decena+ " Y " + n&unidad
                      else
                                     nump= nump+ "VENTI" + n&unidad
                      endif
                       caseT < 10
                       nump= nump+ n&unidad
                       endcase
                       endif (T > 0)
                       if enterov > 999999 .AND. contador= 1
                       nump= nump+ " MILLONES "
                       endif
                       if nump = " UNO MILLONES "
                       nump= " UN MILLON "
                       endif
                       if nump = " CIENTO MIL "
                       nump = " CIEN MIL "
                       endif
                       if enterov> 999 .AND. contador= 2 .AND. VAL(subcadena) > 0
                       nump= nump+ " MIL "
                       endif
                       if nump = " UNO MIL "
                       nump= " MIL "
                       endif
                       inicio= contador* 3 + 1
                       contador= contador+ 1
                       enddo
centav= pvalor-int(pvalor)
centav= round((centav*100),0)
centav= int(centav)
centav= str(centav,2)
centav= strtran(centav," ","0")
nump= + nump+ " PESOS" + " CON " + centav+ " CENTAVOS"
thisform.text2.value=nump
return

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas