Nesse vídeo demonstraremos a utilização das funções NgSalvaMvPa e NgRetAuMVPa, que servem para fazer um backup ou restaurar os parâmetros em memória (MV_PAR01 até o MV_PAR60).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe369 Exemplo de função que armazena o conteúdo dos parâmetros em um backup sendo possível depois retornar esse backup @type Function @author Atilio @since 30/11/2022 @obs Função AtfSaveMvVar * Não possui parâmetros, nem retorno * Função AtfRestMvPar * Não possui parâmetros, nem retorno * **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe369() Local aArea := FWGetArea() Local cMensagem := "" //Mostra uma pergunta qualquer ao usuário Pergunte("A311TES", .F.) cMensagem += "Após o Pergunte da A311TES, o MV_PAR02 é '" + MV_PAR02 + "' " + CRLF //Faz um backup dos MV_PAR em memória aBackup := NgSalvaMvPa() cMensagem += "Foi realizado um backup" + CRLF //Aqui pode ser feito outras tratativas, acionar ParamBox, Pergunte, etc Pergunte("A410INCREM", .F.) cMensagem += "Após o Pergunte da A410INCREM, o MV_PAR02 é '" + MV_PAR02 + "' " + CRLF //Volta esse backup que estava em memória NgRetAuMVPa(aBackup) cMensagem += "Após o voltar o Backup, o MV_PAR02 é '" + MV_PAR02 + "' " + CRLF ShowLog(cMensagem) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Grande, Atílio, sempre trazendo ótimas ferramentas para o nosso dia-a-dia! Acredita que precisei de algo há pouco mais de 1 mês, mais ou menos, e tive que desenvolver uma user function para isso, já que não conhecia esta função que disponibilizou aqui? Rs
Assim que voltar de férias voucrevisar meu código e utilizar a função padrão! Obrigado!!
Fala Rafa, bom dia, tudo joia?
Opa, muito obrigado pelo comentário e carinho, é muita bondade sua.
Sim, já aconteceu isso algumas vezes comigo também rsrs, quem nunca né rs
Um grande abraço.
Grande Atílio, sempre ajudando, só para complementar tem mais esse no padrão
aMvPars := GuardPars()
RestPars(aMvPars)
Bom dia Alexandre, tudo joia?
Opa, nós que agradecemos o feedback. Olha que legal, não conhecia a GuardPars e RestPars.
Depois vou estudar um pouco sobre elas.
Um grande abraço.
Provavelmente esta função este processo internamente..
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360018402211-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Manipular-pergunta
——————————————————-
//No início de sua customização, antes de qualquer validação
aMvPar := {}
For nX := 1 To 40
aAdd( aMvPar, &( “MV_PAR” + StrZero( nX, 2, 0 ) ) )
Next nX
//No final da customização
For nX := 1 To Len( aMvPar )
&( “MV_PAR” + StrZero( nX, 2, 0 ) ) := aMvPar[ nX ]
Next nX
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360018402211-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Manipular-pergunta
Bom dia Fábio, tudo joia?
Opa, bem interessante esse trecho, pode ser que por trás esteja fazendo isso mesmo.
A única observação é que as variáveis públicas MV_PAR** vão até a posição 60, e ai nesse for esta indo até a 40. Ai se você tiver um grupo de perguntas que tenha mais de 40 parâmetros, só se atente pra atualizar esse limite do For.
Tenha uma ótima e abençoada segunda feira.
Um grande abraço.