Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Clase que convierta número en letra...
Message
De
19/07/2002 15:17:33
 
 
À
19/07/2002 15:10:33
Humberto Ramirez
H. Ayuntamiento de Colima
Colima, Mexique
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Divers
Thread ID:
00680588
Message ID:
00680590
Vues:
18
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
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform