Sempre que precisamos transforma a data por extenso gera um pouco de dificuldade, vou compartilhar uma função que eu crie para ajudar a criar a data por extenso com diversas formatações.
Algumas possibilidades são.
#Include "Protheus.ch" /*/{Protheus.doc} SPDtExt Retorna a data informada por extenso @author Rafael Gonçalves @since Mar|2020 @version 1.0 @param dData, data que será considerada lDiaExt, se retorna o dia por extenso lMesExt, se retorna o Mes por extenso lAnoExt, se retorna o Ano por extenso @example u_SPDTEXT(dDataBase) //13 de Março de 2020 u_SPDTEXT(dDataBase,.T.) //Treze de Março de 2020 u_SPDTEXT(dDataBase,.T.,.F.) //Treze de 03 de 2020 u_SPDTEXT(dDataBase,.T.,.F.,.T.) //Treze de 03 de Dois Mil e Vinte u_SPDTEXT(dDataBase,.F.,.T.,.T.) //13 de Março de 2020 @see https://sempreju.com.br /*/ user function SPDTEXT(dData, lDiaExt, lMesExt, lAnoExt) Local cRetDat as Character Default lDiaExt := .F. Default lMesExt := .T. Default lAnoExt := .F. cRetDat := "" If lDiaExt //convert dia por exenso cRetDat += capital(extenso(day(dData), .t.)) else cRetDat += cValToChar(day(dData)) Endif cRetDat += " de " If lMesExt //convert dia por exenso cRetDat += mesextenso(dData) else cRetDat += cValToChar(Month(dData)) Endif cRetDat += " de " If lAnoExt //convert dia por exenso cRetDat += capital(extenso(year(dData), .t.)) else cRetDat += cValToChar(year(dData)) Endif return cRetDat
O código fonte desse e outros exemplos podem ser encontrados em nosso git.
Post interessantes:
Aprenda a instalar o Protheus aqui.
Aprenda a mudar o logo do sistema aqui.
Aprenda a diferença de path relativo e absoluto aqui.
Dúdivas e sugestões, entre em contato.
Obrigado e até a próxima!
0 comentário