sexta-feira, 31 de julho de 2015

Windev Numero Extenso



VIDEO - WINDEV - NUMERO EXTENSO








PROCEDURE extenso(cy_valor is currency)
nContador, nTamanho is int
cValor, cParte, cFinal is string
atexto is array of 4 string
agrupo is array of 4 string
aunid is array of 19 string
adezena is array of 9 string
acentena is array of 9 string
atexto[1]=""
atexto[2]=""
atexto[3]=""
atexto[4]=""
aunid[1] = "UM "
aunid[2] = "DOIS "
aunid[3] = "TRÊS "
aunid[4] = "QUATRO "
aunid[5] = "CINCO "
aunid[6] = "SEIS "
aunid[7] = "SETE "
aunid[8] = "OITO "
aunid[9] = "NOVE "
aunid[10] = "DEZ "
aunid[11] = "ONZE "
aunid[12] = "DOZE "
aunid[13] = "TREZE "
aunid[14] = "QUATORZE "
aunid[15] = "QUINZE "
aunid[16] = "DEZESSEIS "
aunid[17] = "DEZESSETE "
aunid[18] = "DEZOITO "
aunid[19] = "DEZENOVE "
adezena[1] = "DEZ "
adezena[2] = "VINTE "
adezena[3] = "TRINTA "
adezena[4] = "QUARENTA "
adezena[5] = "CINQUENTA "
adezena[6] = "SESSENTA "
adezena[7] = "SETENTA "
adezena[8] = "OITENTA "
adezena[9] = "NOVENTA "
acentena[1] = "CENTO "
acentena[2] = "DUZENTOS "
acentena[3] = "TREZENTOS "
acentena[4] = "QUATROCENTOS "
acentena[5] = "QUINHENTOS "
acentena[6] = "SEISCENTOS "
acentena[7] = "SETECENTOS "
acentena[8] = "OITOCENTOS "
acentena[9] = "NOVECENTOS "
cValor = NumToString(cy_valor, "012,2f")
agrupo[1] = Middle(cValor, 1, 3)
agrupo[2] = Middle(cValor, 4, 3)
agrupo[3] = Middle(cValor, 7, 3)
agrupo[4] = "0" + Middle(cValor, 11, 2)
FOR nContador = 1 TO 4
    cParte = agrupo[nContador]   
    nTamanho = 0   
    IF Val(cParte)>= 1 AND Val(cParte)<10 THEN
        nTamanho = 1
    END
    IF Val(cParte)>=10 AND Val(cParte)<100 THEN
        nTamanho = 2
    END
    IF Val(cParte)>=100 AND Val(cParte)<1000 THEN
        nTamanho = 3
    END
    IF nTamanho = 3 THEN
        IF Right(cParte, 2) <> "00" THEN
            atexto[nContador] = atexto[nContador] + acentena[Left(cParte, 1)] + "E "
            nTamanho = 2
        ELSE
            IF Left(cParte,1)="1" THEN
                atexto[nContador] = atexto[nContador] + "CEM"
            ELSE               
                atexto[nContador] = atexto[nContador] + acentena[Left(cParte, 1)]
            END
        END
    END
    IF nTamanho = 2 THEN
        IF Val(Right(cParte, 2)) < 20 THEN
            atexto[nContador] = atexto[nContador] + aunid[Right(cParte, 2)]
        ELSE
            atexto[nContador] = atexto[nContador] + adezena[Middle(cParte, 2, 1)]
            IF Right(cParte, 1) <> "0" THEN
                atexto[nContador] = atexto[nContador] + "E "
                nTamanho = 1
            END
        END
    END
    IF nTamanho = 1 THEN
        atexto[nContador] = atexto[nContador] + aunid[Right(cParte, 1)]
    END
END
IF (Val(agrupo[1]) + Val(agrupo[2] + Val(agrupo[3])) = 0 AND Val(agrupo[4]) <> 0) THEN
    IF Val(agrupo[4]) = 1 THEN       
        cFinal = atexto[4] + "CENTAVO"       
    ELSE       
        cFinal = atexto[4] + "CENTAVOS"       
    END   
ELSE   
    cFinal = ""   
    IF Val(agrupo[1])<>0 THEN       
        cFinal = cFinal + atexto[1]       
        IF Val(agrupo[1])>1 THEN           
            cFinal = cFinal + "MILHÕES "           
        ELSE           
            cFinal = cFinal + "MILHÃO "           
        END       
    END   
    IF Val(agrupo[2] + agrupo[3]) = 0 THEN       
        cFinal = cFinal + "DE "       
    ELSE       
        IF Val(agrupo[2])<>0 THEN           
            cFinal = cFinal + atexto[2]+"MIL "           
        END       
    END   
    cFinal = cFinal + atexto[3] + "REAIS"   
    IF Val(agrupo[4]) <> 0 THEN       
        cFinal = cFinal + " E " + atexto[4]       
        IF Val(agrupo[4])=1 THEN           
            cFinal = cFinal + " CENTAVO"           
        ELSE           
            cFinal = cFinal + " CENTAVOS"           
        END       
    END   
END
RESULT cFinal

Nenhum comentário:

Postar um comentário

Teste

Teste
teste