Usina BRGuía AdvPL
Ingresar
← Todos los temas
FUNDAMENTOPublicado

Macro substituição

&cExpressao

Avalia dinamicamente uma expressão AdvPL armazenada como texto.

OperadoresExpressõesVariáveis
01 · DESCRIPCIÓN GENERAL

Descripción general

O operador de macro substituição, representado pelo e comercial (&), faz com que uma expressão armazenada em caracteres seja interpretada e avaliada durante a execução. Na prática, o conteúdo textual passa a ser tratado como parte do código naquele momento, permitindo fórmulas e referências dinâmicas.

02 · SINTAXIS

Sintaxis

&cExpressao
03 · EJEMPLO PRÁCTICO

Avaliação de uma fórmula

User Function ExMacro()
    Private nX := 10
    Private cFormula := "nX + 1"
    Local nResultado := &cFormula

    ConOut(nResultado) // 11
Return
Resultado esperado

O conteúdo de cFormula é avaliado em tempo de execução. A expressão nX + 1 produz o valor numérico 11.

04 · EJEMPLO PRÁCTICO

Campo definido dinamicamente

User Function ExCampo()
    Local cCampo := "A1_NOME"

    DbSelectArea("SA1")
    ConOut(SA1->&cCampo)
Return
Resultado esperado

O conteúdo de cCampo determina qual campo do alias SA1 será acessado durante a execução.

BUENAS PRÁCTICAS
  • Use macro substituição somente quando a expressão realmente precisar ser definida em tempo de execução.
  • Mantenha controle sobre a origem do texto avaliado e valide rigorosamente conteúdos informados por usuários.
  • Prefira código direto quando a expressão for conhecida durante o desenvolvimento, pois ele é mais simples de compreender, testar e manter.
ERRORES COMUNES
  • A referência histórica informa que variáveis usadas dentro da expressão textual não podem ser locais; considere o escopo e valide o comportamento na versão do ambiente utilizada.
  • Erros de sintaxe dentro da string aparecem somente durante a execução.
  • Avaliar texto não confiável pode executar expressões inesperadas e alterar a lógica da rotina.

Contenido relacionado

REFERENCIAS
  1. SILVA, Waterloo Ferreira da. A Bíblia do AdvPL. 2004, p. 31-32, seção “Macro Substituição”. Conteúdo resumido, revisado e exemplos adaptados.
  2. TOTVS. SDK Microsiga Protheus. Versão 1.0, 31 jul. 2014 — seção O Operador Macro (&).
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Português
Revisión
Usina.BR