Buscando o texto por extenso de um valor numérico através da Extenso – Maratona AdvPL e TL++ 164

Nesse vídeo demonstraremos a utilização da função Extenso, que serve para retornar o texto por extenso de uma expressão numérica, por exemplo, 10 retorna “Dez”.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe164
Retorna um valor numérico em texto extenso
@type Function
@author Atilio
@since 19/12/2022
@see https://tdn.totvs.com/pages/releaseview.action?pageId=604534431
@obs 
    Função Extenso
    Parâmetros
        + nNumToExt    , Numérico    , Valor numérico
        + lQuantid     , Lógico      , Determina se será valor monetário (.F.) ou quantidade (.T.)
        + nMoeda       , Numérico    , Define qual texto será usado conforme MV_MOEDA*
        + cPrefixo     , Caractere   , Prefixo alternativo
        + cIdioma      , Caractere   , Qual idioma será a tradução (1=Portugues; 2=Espanhol; 3=Ingles)
        + lCent        , Lógico      , Especifica se deve retornar os centavos (.T.) ou não (.F.)
        + lFrac        , Lógico      , Especifica se os centavos devem retornar em modo fracionado (somente em inglês)
        + lUsaCon      , Lógico      , Especifica se será usado "y" ou "con" (somente em espanhol)
        + cPosMoed     , Caractere   , Especifica a posição da descrição da moeda (1= antes do texto; 2= entre valores e centavos; 3=no final do texto)
    Retorno
        + cExt         , Caractere   , Retorna o valor em texto extenso

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe164()
    Local aArea     := FWGetArea()
    Local nValor    := 2.87
    Local cValor    := ""
    Local cMensagem := ""

    //Montando uma mensagem com as opções
    cMensagem := Extenso(nValor)                                                                + CRLF
    cMensagem += Capital(Extenso(nValor))                                                       + CRLF
    cMensagem += Capital(Extenso(nValor, /*lQuantid*/, /*nMoeda*/, /*cPrefixo*/, "2"))          + CRLF
    cMensagem += Capital(Extenso(nValor, /*lQuantid*/, /*nMoeda*/, /*cPrefixo*/, "3"))          + CRLF
    FWAlertInfo(cMensagem, "Teste 1 com Extenso")

    //Armazenando o resultado em uma variável
    nValor := 10.79
    cValor := Extenso(nValor)
    FWAlertInfo("O valor é de " + cValToChar(nValor) + " (" + cValor + ")", "Teste 2 com Extenso")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação