Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Próxima »

Função: EVal

Executa um bloco de código.

EVal ( < bBloco>, [ xVariavel] ) --> xRetorno

NomeTipoDescriçãoObrigatórioReferência
bBlocoBloco de códigoIndica o bloco de código que será avaliado. X
xVariavelQualquerIndica o argumento que será avaliado no bloco de código.
    xRetorno(qualquer)
  • Retorna o valor da última expressão do bloco de código.
// Exemplo 1#DEFINE CRLF Chr(13)+Chr(10)#DEFINE TAB  Chr(09)User Function Exemplo()Local bBloco := {|nArg| nArg + 1 }Local cMensagem := ""Local nCount := 0//+----------------------------------------------------------------------------+//|Exemplifica o uso da função Eval                                            |//+----------------------------------------------------------------------------+  cMensagem += "Antes de avaliar o bloco de código: "  + CRLF  cMensagem += TAB + "nCount = " + cValToChar(nCount)  + CRLF  nCount := Eval(bBloco, nCount)  cMensagem += "Depois de avaliar o bloco de código: " + CRLF  cMensagem += TAB + "nCount = " + cValToChar(nCount)//+----------------------------------------------------------------------------+//|Apresenta uma mensagem com os resultados obtidos                            |//+----------------------------------------------------------------------------+Return MsgInfo(cMensagem, "Eval - Exemplo")////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Exemplo 2//Este exemplo cria um bloco de código que incrementa um número e depois o avalia:bBloco := { |nArg| nArg + 1 }? EVAL(bBloco, 1)                               // Resulta: 2////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Exemplo 3//Este exemplo demonstra como um bloco de código pode ser compilado em tempo de execuçao utilizando-se o operador macro (&):bBloco := &("{ |nArg| nArg + 1 }")? EVAL(bBlock, 1)                               // Avalia o bloco

Exemplo da função EVal()
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  • Sem rótulos