Nesse vídeo demonstraremos a utilização das funções Soma1 e Tira1, que servem para incrementar ou decrementar números sequencias em strings, por exemplo, de 99 ir para 9A e depois 9B e assim por diante.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe449
Incrementa um conteúdo caractere e quando chega em 9 ele começa a usar letras, por exemplo "99"
@type Function
@author Atilio
@since 26/11/2022
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6814919
@obs
Função Soma1
Parâmetros
+ cSoma , Caractere , String que será analisada
+ nPos , Numérico , Posição ser movimentada
+ lSomaLow , Lógico , Se deve usar caracteres minúsculos
+ lCompleteSUM , Lógico , Define se irá usar todos os caracteres disponíveis antes de usar letras
Retorno
+ cRet , Caractere , Retorna a string com +1 no conteúdo (conforme o tamanho do cSoma)
Função Tira1
+ Recebe a string no formato do Soma1
Retorno
+ Retorna a string diminuindo -1 no conteúdo
Obs.: Se o parâmetro MV_SOMAOLD estiver como .T. do "99" ele irá virar "9A"; se tiver .F. ai do "99" ele irá virar "A0"
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe449()
Local aArea := FWGetArea()
Local cValor := "00"
Local nAtual := 0
//Percorre valor de 1 a 150 e depois vê quanto que ficou o Soma1
For nAtual := 1 To 150
cValor := Soma1(cValor)
Next
FWAlertInfo("O resultado é: " + cValor, "Teste Soma1")
//Utiliza o Tira1 para ver quanto que ficou o resultado
cValor := Tira1(cValor)
FWAlertInfo("O resultado é: " + cValor, "Teste Tira1")
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.