Macrosustitución
&cExpressaoEvalúa en tiempo de ejecución una expresión AdvPL almacenada como texto.
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.
Sintaxis
&cExpressaoEvaluación de una fórmula
User Function ExMacro()
Private nValor := 10
Private cFormula := "nValor + 1"
Local nResultado := &cFormula
ConOut(nResultado) // 11
ReturncFormula se evalúa durante la ejecución y produce el valor numérico 11.
Referencia dinámica de campo
User Function ExCampo()
Local cCampo := "A1_NOME"
DbSelectArea("SA1")
ConOut(SA1->&cCampo)
ReturnEl contenido de cCampo determina qué campo de SA1 se consulta durante la ejecución.
- 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.
- 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.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.