Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
Portuguese |
Pagetitle |
---|
...
|
Executa um bloco de código
Sintaxe
Bloco de código | ||
---|---|---|
| ||
Eval( < bBloco >, [ xVariavel ] )
|
Parâmetros
...
Função: EVal
Executa um bloco de código.
EVal ( < bBloco>, [ xVariavel] ) --> xRetorno
...
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
bBloco |
...
bloco de código | Indica o bloco de código que será avaliado. | X |
|
xVariavel |
...
qualquer | Indica o argumento que será avaliado no bloco de código. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
xRetorno |
...
qualquer |
...
Retorna o valor da última expressão do bloco de código. |
Exemplos
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
// Exemplo 1#DEFINE1 #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 blocoExemplo da função EVal() |
Resultado do Exemplo
Abrangência
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas