Executando um Bloco de Código com Eval em ADVPL

Tempo de leitura: 2 minutos

 

A função Eval em ADVPL executa um bloco de código passado como parâmetro. 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'

/*{Protheus.doc} User Function fEval
    (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 30/06/2023
    @version 1.0

@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG
    
*/

//Exemplo da função Eval
User Function fEval()
	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:

Exemplo da função Eval em ADVPL

 

 

É 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:

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.