Tempo de leitura: 2 minutos
A função Eval executa um bloco de código em ADVPL. Ela é uma das funções de manipulação de bloco de códigos em ADVPL.
Sintaxe:
Eval(bBloco,xExp)
Parâmetro(s):
Retorno:
Exemplo da função Eval em ADVPL:
#include 'protheus.ch'
#define QLIN Chr(10)+Chr(13)
/*{Protheus.doc} User Function PAEval
(Essa função tem por finalidade mostrar a função de Manipulação de Blocos de Código Eval em ADVPL)
@type Function
@author Adilio Costa
@since 01/08/2023
@version Protheus 12.1.2210
@Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@Conheça os Cursos do ProtheusAdvpl:
https://hotmart.com/pt-br/club/protheusadvpl
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
*/
User Function PAEval()
Local bSoma := {|nVal| Y:=nVal+12, X:=Y*nVal}
Local xExp := 2
Local xRetorno := Eval(bSoma,xExp)
MsgInfo("O resultado de bSoma é:"+cValToChar(xRetorno), "Função Eval")
Return
No código ADVPL acima nós criamos um bloco código chamado bSoma que recebe como parâmetro nVal depois iremos somar o conteúdo de nVal com 12 e atribuir o resultado a Y, ao final multiplicamos o conteúdo de Y por nVal e atribuímos o resultado a X, assim o conteúdo de X será o resultado do bloco de código bSoma. Depois disso passamos à função Eval o bloco de código bSoma e o valor 2(xExp). Quando Eval executar o bloco de código o valor de nVal será 2, esse valor será somado a 12 e atribuído a Y, Y ficará com o conteúdo 14, ao final na última expressão executada no bloco de código Y será multiplicado por nVal, ou seja, 14x2 e o resultado 28 será atribuído a X, assim a variável xRetorno será igual a 28:
É isso aí, finalizamos mais um post aqui no Blog ProtheusAdvpl, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Até um próximo post. Grande abraço e fica com Deus.
Link(s) de referência: