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.