No vídeo de hoje, vamos demonstrar em como criar variáveis globais no AdvPL sem utilizar a declaração Public explícita.
A dúvida de hoje, nos perguntaram, em como poderíamos criar variáveis que ficassem disponíveis em toda a thread no Protheus mas sem usar o escopo Public de modo explícito.
Pensando nisso, montamos esse exemplo, onde vamos demonstrar a utilização das funções PutGlbValue, GetGlbValue e TimeGlbValue.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zVid141P
Exemplo de criação de variável pública
@type Function
@author Atilio
@since 01/04/2024
/*/
User Function zVid141P()
Local aArea := FWGetArea()
//Cria uma variável pública na memória
PutGlbValue("cXNomSobr", "Daniel Atilio")
FWRestArea(aArea)
Return
/*/{Protheus.doc} User Function zVid141G
Exemplo de busca de variável pública
@type Function
@author Atilio
@since 01/04/2024
/*/
User Function zVid141G()
Local aArea := FWGetArea()
Local cNome := ""
//Busca a variável pública na memória
cNome := GetGlbValue("cXNomSobr")
//Mostra uma mensagem
FWAlertInfo("O nome é " + cNome, "Teste GetGlbValue")
FWRestArea(aArea)
Return
/*/{Protheus.doc} User Function zVid141G
Exemplo de busca de quantidade de segundos desde a última atualização da variável pública
@type Function
@author Atilio
@since 01/04/2024
/*/
User Function zVid141T()
Local aArea := FWGetArea()
Local nSegundos := 0
//Busca o tempo
nSegundos := TimeGlbValue("cXNomSobr")
//Mostra uma mensagem
FWAlertInfo("A quantidade de segundos é " + cValToChar(nSegundos), "Teste TimeGlbValue")
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.