Usina BRGuía AdvPL
Ingresar
← Todos los temas
FUNDAMENTOPublicado

Macrosustitución

&cExpressao

Evalúa en tiempo de ejecución una expresión AdvPL almacenada como texto.

OperadoresExpresionesVariables
01 · DESCRIPCIÓN GENERAL

Descripción general

El operador macro representado por & hace que una expresión de caracteres sea interpretada y evaluada durante la ejecución. Permite fórmulas y referencias dinámicas, pero traslada la validación de sintaxis al tiempo de ejecución y exige controlar estrictamente el texto evaluado.

02 · SINTAXIS

Sintaxis

&cExpressao
03 · EJEMPLO PRÁCTICO

Evaluación de una fórmula

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

    ConOut(nResultado) // 11
Return
Resultado esperado

cFormula se evalúa durante la ejecución y produce el valor numérico 11.

04 · EJEMPLO PRÁCTICO

Referencia dinámica de campo

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

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

El contenido de cCampo determina qué campo de SA1 se consulta durante la ejecución.

BUENAS PRÁCTICAS
  • Utiliza macrosustitución solo cuando la expresión deba definirse en tiempo de ejecución.
  • Valida rigurosamente textos recibidos de usuarios o fuentes externas.
  • Prefiere código directo cuando la expresión sea conocida durante el desarrollo.
ERRORES COMUNES
  • La documentación histórica indica que las variables referenciadas dentro de la expresión no pueden ser locales; comprueba el comportamiento en el release utilizado.
  • Los errores de sintaxis en el texto aparecen solamente durante la ejecución.
  • Evaluar texto no confiable puede ejecutar expresiones inesperadas.

Contenido relacionado

REFERENCIAS
  1. Waterloo Ferreira da Silva. La Biblia de AdvPL. 2004, pp. 31–32. Contenido resumido y adaptado.
  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
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha