Função que converte valor numérico para o Soma1 em AdvPL

Função que converte valor numérico para o Soma1 em AdvPL

Olá pessoal…

Hoje vou mostrar para vocês uma função simples de conversão de valor numérico para valor de Soma1 em AdvPL.

AdvPL
AdvPL

O valor de Soma1, é aquele que ao atingir por exemplo “99” ele vira “A0”, depois vai para “A1” até chegar em “ZZ”.

Pensando nisso, criei uma função que converte com você passando já o Soma1 para ela (saiba mais em https://terminaldeinformacao.com/2016/10/25/funcao-converte-valor-soma1-em-advpl/). Porém se você quiser passar um valor numérico, não era possível, criei então uma nova função.

Segue abaixo a função desenvolvida, onde você só precisa informar o valor numérico, e ela retorna o valor de soma1.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zValToSoma1
Função criada para converter um valor numérico em valor caracter do Soma1
@author Atilio
@since 16/06/2017
@version 1.0
@type function
	@param nValor, numeric, Número que deseja converter
	@param nQtdPos, numeric, Quantidade de casas a considerar
	@return cValor, Valor já convertido
	@example u_zValToSoma1(100, 2) --> Retorna "A0"
	u_zValToSoma1(500, 2) --> Retorna "L4"
	u_zValToSoma1(500, 3) --> Retorna "500"
/*/

User Function zValToSoma1(nValor, nQtdPos)
	Local aArea  := GetArea()
	Local cValor := StrTran(Space(nQtdPos), ' ', '0')
	Local nAtual := 0
	
	//Percorrendo o valor
	For nAtual := 1 To nValor
		cValor := Soma1(cValor)
	Next
	
	RestArea(aArea)
Return cValor

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: