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

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.

2 Responses

  1. Rafael Strozi disse:

    Salvou minha vida hoje!

Deixe uma resposta para Rafael StroziCancelar resposta

Terminal de Informação