Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Clase que convierta número en letra...
Message
From
19/07/2002 15:17:33
 
 
To
19/07/2002 15:10:33
Humberto Ramirez
H. Ayuntamiento de Colima
Colima, Mexico
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Miscellaneous
Thread ID:
00680588
Message ID:
00680590
Views:
19
Tengo una función que hace eso, aqui va el codigo.
Nota: Puedes enviar tus mensajes en el foro de FoxPro en español, puedes configurar tu cuenta para que al ingresar, entres directamente a ese foro, e incluso el idioma.

Mauricio
**----------------------
** Function APesos
**
** Devuelve la cadena textual correspondiente a una cantidad en pesos.
**----------------------
Function APesos
	PARAMETERS numero
    resto  = RIGHT( STR( numero, 9, 2 ), 2 )
    numero = INT( numero )
    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'
    n100 = 'CIENTO'
    n200 = 'DOSCIENTOS'
    n300 = 'TRESCIENTOS'
    n400 = 'CUATROCIENTOS'
    n500 = 'QUINIENTOS'
    n600 = 'SEISCIENTOS'
    n700 = 'SETECIENTOS'
    n800 = 'OCHOCIENTOS'
    n900 = 'NOVECIENTOS'
    contador = 1
    inicio   = 1
    cadena   = STR( numero, 9 )
    nump     = ' '
    DO WHILE contador < 4
        IF numero <= 0
            nump = '( *** CERO PESOS 00/100 M.N. *** )'
            RETURN nump
        ENDIF
        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
            IF VAL( subcadena ) = 100
                nump = nump + 'CIEN '
            ELSE
                nump = nump + n&centena + ' '
            ENDIF
        ENDIF
        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 + 'VEINTI' + n&unidad + ' '
                    ENDIF
                CASE t < 10
                    nump = nump + n&unidad + ' '
            ENDCASE
        ENDIF
        IF numero > 999999 .AND. contador = 1
            nump = nump + 'MILLONES '
        ENDIF
        IF nump = ' UN MILLONES '
            nump = ' UN MILLON '
        ENDIF
        IF numero > 999 .AND. contador = 2 .AND. VAL( subcadena ) > 0
            nump = nump + 'MIL '
        ENDIF
        IF nump = ' UN MIL '
            nump = ' MIL '
        ENDIF
        inicio   = contador * 3 + 1
        contador = contador + 1
    ENDDO
    nump = '( * ' + nump + 'PESOS ' + resto + '/100 M.N. * )'
RETURN nump
Be fast like the Fox
Be free like the Penguin
Se Rápido como el Zorro
Se libre como el Pingüino
Previous
Reply
Map
View

Click here to load this message in the networking platform