Compartir a través de


& (Comando)

Realiza una sustitución de macro.

& VarName[.cExpression]

Parámetros

  • & VarName
    Especifica el nombre de la variable o del elemento de matriz al que se hace referencia en la sustitución de macro. No incluya el prefijo M., que distingue las variables de los campos. Esto causaría un error de sintaxis. La macro no debe superar la longitud máxima de instrucción permitida en Visual FoxPro.

    Una variable no puede hacer referencia a sí misma de forma recursiva en una sustitución de macro. Por ejemplo, lo siguiente genera un mensaje de error:

    STORE '&gcX' TO gcX
    ? &gcX
    

    Las instrucciones de sustitución de macro que aparecen en DO WHILE, FOR y SCAN se evalúan únicamente al inicio del bucle y no se vuelven a evaluar en los bucles posteriores. No se reconocen los cambios efectuados en la variable o en el elemento de matriz que ocurran dentro del bucle.

  • .cExpression
    El delimitador opcional punto (.) y .cExpression se utilizan para anexar caracteres adicionales a una macro. cExpression anexada a la macro con cExpression también puede ser una macro. Si cExpression es un nombre de propiedad, incluya un punto adicional (cExpression..PropertyName).

Observaciones

La sustitución de macro trata el contenido de una variable o un elemento de matriz como un literal de cadena de caracteres. Cuando un signo (&) precede a una variable o un elemento de matriz de tipo carácter, el contenido de la variable o el elemento sustituye a la referencia de la macro. Puede utilizar la sustitución de macro en cualquier comando o función que acepte un literal de cadena de caracteres.

Sugerencia   Siempre que sea posible, utilice una expresión de nombre en lugar de una sustitución de macro. Una expresión de nombre actúa de forma similar a una sustitución de macro. Sin embargo, una expresión de nombre está limitada a transferir cadenas de caracteres como nombres. Utilice una expresión de nombre para acelerar el proceso de forma significativa si un comando o una función acepta un nombre (un nombre de archivo, un nombre de ventana, un nombre de menú, etc.) Para obtener más información sobre las expresiones de nombre, consulte Introducción al lenguaje.

Aunque los comandos siguientes son aceptables:

STORE 'customer' TO gcTableName
STORE 'company'  TO gcTagName
USE &gcTableName ORDER &gcTagName

utilice en cambio una expresión de nombre:

USE (gcTableName) ORDER (gcTagName)

La sustitución de macro es útil para reemplazar una palabra clave en un comando. En el ejemplo siguiente, la configuración de TALK se guarda en una variable para que pueda restaurarse más adelante en el programa. La configuración original de TALK se restaura mediante una sustitución de macro.

Ejemplo

STORE SET('TALK') TO gcSaveTalk
SET TALK OFF
*  Additional program code
SET TALK &gcSaveTalk  && Restore original TALK setting

Vea también

STORE (Comando) | && (Comando) | Introducción al lenguaje | Sustitución de macros