martes, 26 de agosto de 2008

COMANDOS DE CONFIGURACION (SET) E INSTRUCCIONES DE VISUAL FOXPRO (3)

SET PROCEDURE (Comando)
Abre un archivo de procedimiento.

SET PROCEDURE TO [FileName1 [, FileName2, ...]] [ADDITIVE]
Parámetros
FileName1 [, FileName2, ...]
Especifica la secuencia en la que se abren los archivos. SET PROCEDURE puede aceptar más de un nombre de archivo, lo que le permite abrir simultáneamente varios archivos de procedimiento. Esto permite crear bibliotecas autónomas de funciones y especificarlas por separado.

ADDITIVE
Abre archivos de procedimiento adicionales sin cerrar los que ya están abiertos.
Observaciones
Al ejecutar SET PROCEDURE TO sin ningún nombre de archivo, se cierran todos los archivos de procedimiento abiertos. Use RELEASE PROCEDURE para cerrar archivos individuales.
Cuando se ejecuta un procedimiento, los archivos de procedimiento se buscan si el procedimiento no se encuentra en el programa que se está ejecutando actualmente.




SET READBORDER (Comando)
Determina si se colocan bordes alrededor de los cuadros de texto creados con @ ... GET.

SET READBORDER ON OFF
Parámetros
ON
Coloca un borde de una sola línea alrededor de todos los cuadros de texto creados con @ ... GET. Si SET READBORDER está establecido en ON al crear el primer cuadro de texto, todos los cuadros de texto creados posteriormente en el mismo nivel READ también tendrán bordes.

OFF
(Predeterminado) Especifica que no se agrega ningún borde a los cuadros de texto creados con @ ... GET. Si SET READBORDER está establecido en OFF al crear el primer cuadro de texto, todos los cuadros de texto creados posteriormente en el mismo nivel READ tampoco tendrán bordes.
Observaciones
SET READBORDER especifica si se agregan bordes de una sola línea alrededor de los cuadros de texto creados con @ ... GET.
Ejemplo
En el ejemplo siguiente, los tres primeros cuadros de texto creados con @ ... GET tienen bordes. El tercer cuadro de texto tiene un borde incluso aunque SET READBORDER se estableciera en OFF antes de crearlo. El cuarto cuadro de texto no tiene borde, ya que READBORDER estaba en OFF y está enmarcado en un READ distinto que el de los tres primeros cuadros de texto.

SET READBORDER ON
@ 2,2 GET gnW DEFAULT 1 && 1st READ
@ 4,2 GET gnX DEFAULT 1 && 1st READ
SET READBORDER OFF
@ 6,2 GET gnY DEFAULT 1 && 1st READ
READ
@ 8,2 GET gnZ DEFAULT 2 && 2nd READ
READ




SET REFRESH (Comando)
Determina si se puede y con qué frecuencia puede actualizarse la ventana Examinar con los cambios que hagan en los registros otros usuarios de la red.

SET REFRESH TO nSeconds1 [, nSeconds2]
Parámetros
TO nSeconds1 [, nSeconds2]
Especifica si se realizan actualizaciones y la frecuencia con que se realizan. nSeconds1 especifica el número de segundos entre actualizaciones en una ventana Examinar o de edición de memo. nSeconds1 puede ser un valor entre 0 y 3.600, siendo 0 segundos el valor predeterminado. Cuando nSeconds1 es un valor distinto de cero y otros usuarios cambian los registros que está mostrando, estos registros se actualizan cuando transcurre el intervalo de actualización. Los registros que está viendo no se actualizan si nSeconds1 es 0.
Microsoft Visual FoxPro almacena en búfer partes de tablas en la memoria de la estación de trabajo. nSeconds2 especifica la frecuencia con que se actualizan estos búferes locales de datos con datos actuales de la red. nSeconds2 es el número de segundos entre actualizaciones de búferes de datos. Puede especificar un valor entre 0 y 3.600, siendo 5 el valor predeterminado. Los búferes no se actualizan nunca si nSeconds2 está definido como 0.
Si especifica un valor para nSeconds1 distinto de 0 pero no incluye nSeconds2, nSeconds2 se establecerá en el mismo valor que nSeconds1. No obstante, nSeconds2 se establece como 5 si especifica 0 para nSeconds1 y no incluye nSeconds2.
El rendimiento puede mejorarse aumentando el valor de nSeconds2.
Observaciones
Las tablas se pueden abrir para su uso compartido en una red, por lo que es posible que los registros que está viendo en una ventana Examinar estén siendo modificados por otros usuarios de la red.
SET REFRESH afecta a los registros mostrados en una ventana Examinar abierta con BROWSE, CHANGE o EDIT. Los campos memo abiertos para su modificación en una ventana Examinar también se actualizan.
SET REFRESH puede utilizarse también para especificar con qué frecuencia se actualizan los datos del búfer local de su estación de trabajo.




SET RELATION (Comando)
Establece una relación entre dos tablas abiertas.

SET RELATION TO [eExpression1 INTO nWorkArea1 cTableAlias1
[, eExpression2 INTO nWorkArea2 cTableAlias2 ...]
[IN nWorkArea cTableAlias] [ADDITIVE]]
Parámetros
eExpression1
Especifica la expresión relacional que establece una relación entre las tablas primaria y secundaria. La expresión relacional suele ser la expresión de índice del índice de control de la tabla secundaria.
El índice de la tabla secundaria puede ser un índice (.IDX) de una sola entrada, un índice (.CDX) compuesto estructural de varias entradas o un índice compuesto independiente. Si se trata de un índice compuesto, especifique la etiqueta de índice adecuada para ordenar la tabla secundaria. SET ORDER se puede utilizar para especificar la etiqueta de índice que ordena la tabla secundaria.

Por ejemplo, tomemos las tablas customer y orders descritas en la sección Comentarios siguiente. Suponga que la tabla secundaria orders se ha indizado y ordenado por el número del cliente con este comando:
SET ORDER TO TAG cust_id

Para relacionar las tablas customer y orders según el número del cliente, seleccione el área de trabajo que contiene la tabla primaria customer, o incluya la cláusula IN para especificar el área de trabajo o el alias de la tabla primaria, y luego ejecute SET RELATION, especificando la expresión de índice con la siguiente expresión relacional:
SET RELATION TO cust_id INTO orders

Es necesario que la tabla secundaria esté indizada, a menos que la expresión relacional sea numérica. Visual FoxPro muestra un mensaje de error si ejecuta SET RELATION con una expresión relacional no numérica y la tabla secundaria no está ordenada con un índice.
Si eExpression1 es numérica, se evalúa cuando el puntero de registro se mueve en la tabla primaria. El puntero de registro de la tabla secundaria se mueve en este momento al número de registro eExpression1.

INTO nWorkArea1 cTableAlias1
Especifica el número del área de trabajo (nWorkArea1) o el alias de tabla (cTableAlias1) de la tabla secundaria.

eExpression2 INTO nWorkAre3wa2 cTableAlias2 ...
Especifica una expresión relacional (eExpression2) y una o varias tablas secundarias para establecer una relación adicional entre la tabla primaria y las tablas secundarias. A partir de un único comando SET RELATION, puede crear varias relaciones entre una sola tabla primaria y varias tablas secundarias. Incluya una coma delante de cada relación.
nWorkArea2 especifica un número de área de trabajo y cTableAlias2 especifica un alias de tabla para la tabla secundaria.
IN nWorkArea
Especifica el área de trabajo de la tabla primaria.

IN cTableAlias
Especifica el alias de la tabla primaria.
La cláusula IN le permite crear una relación sin seleccionar primero el área de trabajo de la tabla primaria. Si omite nWorkArea y cTableAlias, la tabla primaria tiene que estar abierta en el área de trabajo seleccionada actualmente.

ADDITIVE
Mantiene las relaciones existentes en el área de trabajo actual y crea la relación especificada. Si omite ADDITIVE, se romperán todas las relaciones del área de trabajo actual y se creará la relación especificada.
Observaciones
Antes de que pueda establecer una relación, una tabla (la tabla primaria) debe estar abierta y la otra (la tabla secundaria) debe estar abierta en otra área de trabajo.
Las tablas relacionadas tienen normalmente un campo en común. Por ejemplo, suponga que una tabla customer contiene información de clientes. Tiene campos para el nombre, la dirección y un número de cliente único. Una segunda tabla orders contiene información sobre pedidos. También tiene un campo con el número de cliente, junto con los campos de fecha e información de envío.
SET RELATION relaciona estas dos tablas basándose en su campo común: el campo de número del cliente. Para establecer la relación, la tabla secundaria debe estar indizada por el campo común. Después de establecer la relación, cada vez que mueva el puntero de registro a un registro con un número de registro determinado de la tabla primaria customer, el puntero de registro de la tabla secundaria orders se moverá al registro que tiene el mismo número de cliente. Si no se encuentra un registro que coincida en la tabla secundaria, el puntero de registro de la tabla secundaria se colocará al final de la tabla.
Ejecute SET RELATION TO sin ningún argumento para quitar todas las relaciones del área de trabajo seleccionada actualmente. SET RELATION OFF se puede utilizar para quitar una relación primaria-secundaria específica.




SET RELATION OFF (Comando)
Rompe una relación establecida entre la tabla primaria del área de trabajo seleccionada actualmente y una tabla secundaria relacionada.

SET RELATION OFF INTO nWorkArea cTableAlias
Parámetros
INTO nWorkArea cTableAlias
Especifica el número de área de trabajo de la tabla secundaria o su alias de tabla.

SET REPROCESS (Comando)
Especifica cuántas veces o durante cuánto tiempo intenta Visual FoxPro bloquear un archivo o un registro después de que fracase un intento de bloqueo.

SET REPROCESS TO nAttempts [SECONDS] [SYSTEM] TO AUTOMATIC [SYSTEM]

Parámetros
TO nAttempts [SECONDS]
Especifica el número de veces que Visual FoxPro intenta bloquear un registro o un archivo después de un intento fracasado. El valor predeterminado es 0 y el valor máximo es 32.000.
SECONDS especifica que Visual FoxPro intenta bloquear un archivo o registro durante nAttempts segundos. Solamente está disponible cuando nAttempts es mayor que cero.
Por ejemplo, si nAttempts es 30, Visual FoxPro intentará bloquear un registro o archivo hasta 30 veces. Si también incluye SECONDS (SET REPROCESS TO 30 SECONDS), Visual FoxPro intentará bloquear continuamente un registro o archivo durante un máximo de 30 segundos.
Aparece un mensaje del sistema (“Esperando bloqueo... ”) si SET STATUS está en ON.
Si hay una rutina ON ERROR activa y fracasan los intentos realizados por el comando para bloquear el registro o archivo, se ejecutará la rutina ON ERROR. Sin embargo, si una función intenta establecer el bloqueo, no se ejecutará la rutina y la función devolverá falso (.F.).
Si no hay ninguna rutina ON ERROR activa, un comando intenta bloquear el registro o archivo, y este bloqueo no se puede realizar, aparecerá una alerta adecuada (por ejemplo,“El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).
Si nAttempts es 0 (el valor predeterminado) y ejecuta un comando o función que intenta bloquear un registro o archivo, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. Visual FoxPro muestra el mensaje del sistema, “Intentando bloquear... Presione Esc para cancelar,” mientras intenta bloquear el registro o el archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si una función intenta realizar el bloqueo, devolverá verdadero (.T.).
Si presiona ESC en respuesta al mensaje del sistema, aparecerá una alerta adecuada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).
Si hay una rutina ON ERROR activa y un comando intenta bloquear el registro o el archivo, la rutina ON ERROR tendrá preferencia sobre otros intentos para bloquear el registro o el archivo. La rutina ON ERROR se ejecuta inmediatamente. Visual FoxPro no intenta realizar bloqueos adicionales de registros ni de archivos, y no muestra el mensaje del sistema.
Si nAttempts es –1, Visual FoxPro intentará bloquear el registro o archivo indefinidamente. No podrá cancelar los intentos de bloqueo presionando la tecla ESC y no se ejecutará ninguna rutina ON ERROR.
Cuando nAttempts está establecido en –2, equivale a la utilización de la cláusula TO AUTOMATIC.
Visual FoxPro solamente muestra el mensaje del sistema “Esperando bloqueo ... ” si SET STATUS está en ON.
Si otro usuario ha establecido un bloqueo en el registro o archivo que intenta bloquear, deberá esperar hasta que el otro usuario libere el bloqueo.

TO AUTOMATIC
Especifica que Visual FoxPro intenta bloquear indefinidamente el registro o el archivo (lo que equivale a establecer nAttempts en –2). Esta cláusula se parece al establecimiento de nAttempts a -1, excepto porque incluye la posibilidad de salir del intento de bloquear un registro o un archivo.
El mensaje del sistema “Intentando bloquear... Presione Esc para cancelar” aparece mientras Visual FoxPro intenta bloquear el registro o archivo. El bloqueo se realiza y el mensaje del sistema se borra si el registro o el archivo llegan a estar disponibles para bloquearse mientras espera. Si se utiliza una función para establecer el bloqueo, la función devolverá verdadero (.T.).
Si no hay una rutina ON ERROR activa y presiona ESC en respuesta al mensaje del sistema, se mostrará la alerta apropiada (por ejemplo, “El registro está siendo utilizado por otra persona”). Si una función intenta realizar el bloqueo, la alerta no se mostrará y la función devolverá falso (.F.).
Si una rutina ON ERROR está activa y presiona ESC, se ejecutará la rutina ON ERROR. Si una función intenta establecer el bloqueo, no se ejecutará la rutina ON ERROR y la función devolverá falso (.F.).

SYSTEM
Especifica que SET REPROCESS se aplica a la sesión de datos del sistema, que controla las tablas utilizadas internamente, como una base de datos, FOXUSER, archivos .scx, etc.

Observaciones
Un bloqueo de registro o de archivo no siempre se consigue en el primer intento. Con frecuencia, un registro o archivo está bloqueado por otro usuario de la red. SET REPROCESS determina si Visual FoxPro debe realizar más intentos de bloquear el registro o archivo cuando fracasa el primer intento. Puede especificar cuántos intentos más se harán o durante cuánto tiempo se intentará. Una rutina ON ERROR afecta a cómo se controlan los intentos de bloqueo fracasados.
SET REPROCESS tiene como alcance la sesión actual de datos. SET REPROCESS SYSTEM tiene como alcance la sesión de datos del sistema.

Nota: Los cambios realizados en la ficha Datos del cuadro de diálogo Opciones de herramientas sólo afectan a la sesión actual.

Ejemplo
SET ("REPROCESS") && Returns the current session setting
SET("REPROCESS",1) && Returns the system session setting

* In the config.fpw file, the following code changes the default session.
REPROCESS = 100




SET RESOURCE (Comando)
Actualiza o especifica un archivo de recursos.

SET RESOURCE ON OFF
O bien:
SET RESOURCE TO [FileName]

Parámetros
ON
(Predeterminado) Especifica que los cambios realizados en el entorno de Visual FoxPro se guarden en el archivo de recursos.

OFF
Especifica que los cambios realizados en el entorno de Visual FoxPro no se guarden en el archivo de recursos.

TO [FileName]
Especifica que los cambios realizados en el entorno de Visual FoxPro se guarden en un archivo de recursos (FileName) distinto del predeterminado FOXUSER.DBF.
Ejecute SET RESOURCE TO sin un nombre de archivo de recursos para abrir el archivo de recursos predeterminado Foxuser.dbf. Si ejecuta SET RESOURCE TO, se ejecutará SET RESOURCE ON implícitamente.

Observaciones
El archivo de recursos es una tabla de Visual FoxPro que contiene información acerca de los recursos del sistema y los recursos definidos por el usuario, como macros de teclado, preferencias, posición y tamaño de las ventanas del sistema, entradas de diarios, etc.




SET SAFETY (Comando)
Determina si Visual FoxPro muestra o no un cuadro de diálogo antes de sobrescribir un archivo existente. También determina si se evaluarán las reglas de tablas o de campos, los valores predeterminados y los mensajes de error al realizar cambios en el Diseñador de tablas o con ALTER TABLE.

SET SAFETY ON OFF

Parámetros
ON
(Predeterminado) Especifica que se muestre un cuadro de diálogo antes de sobrescribir un archivo existente. El cuadro de diálogo le ofrece la opción de sobrescribir el archivo existente.
Para el Diseñador de tablas, especifica que se evaluarán las reglas de tablas o de campos, los valores predeterminados y los mensajes de error cuando se guarden las modificaciones realizadas en la estructura de una tabla. Después de guardar las modificaciones de la estructura de la tabla, se validarán los datos de las reglas nuevas o modificadas. Si una regla de validación contiene una UDF (función definida por el usuario, user-defined function), ésta no se evaluará y se pasará por alto la regla de validación.
Para ALTER TABLE, se evaluarán las reglas de tablas o de campos, los valores predeterminados y los mensajes de error siempre que ALTER TABLE modifique la estructura de la tabla. Cuando ALTER TABLE modifica la estructura de la tabla, se produce la validación de los datos de reglas nuevas o modificadas. Si una regla de validación contiene una UDF (función definida por el usuario, user-defined function), ésta no se evaluará y se pasará por alto la regla de validación.

OFF
Especifica que no se muestre ningún cuadro de diálogo antes de sobrescribir un archivo existente. Observe que para los servidores de automatización .dll en proceso el valor predeterminado de SET SAFETY es OFF.
Para el Diseñador de tablas, especifica que no se evaluarán las reglas de tablas o de campos, los valores predeterminados y los mensajes de error cuando guarde los cambios realizados en la estructura de una tabla. Sin embargo, una vez guardados los cambios en la estructura de la tabla, tendrá lugar la validación de datos de las reglas de validación nuevas o modificadas.
Para ALTER TABLE, no se evaluarán las reglas de tablas o de campos, los valores predeterminados y los mensajes de error cuando ALTER TABLE modifique la estructura de la tabla. Después de que ALTER TABLE haya cambiado la estructura de la tabla, no se validarán los datos para reglas de validación nuevas o modificadas.

Observaciones
SET SAFETY tiene como alcance la sesión de datos actual.




SET SECONDS (Comando)
Especifica si se muestran los segundos en la parte de hora de los valores DateTime.

SET SECONDS ON OFF

Parámetros
ON
(Predeterminado) Especifica que se muestren los segundos de los valores DateTime.

OFF
Especifica que no se muestren los segundos en valores DateTime.

Observaciones
SET SECONDS tiene como alcance la sesión de datos actual.

Ejemplo
En el siguiente ejemplo se demuestra el efecto de la configuración de SET SECONDS en el valor de hora devuelto por DATETIME( ). Cuando SET SECONDS está en ON, se muestra el valor de hora con una parte en segundos. Cuando SET SECONDS está en OFF, no se muestran los segundos en el valor de hora.

SET SECONDS ON
CLEAR
? DATETIME( ) && Displays time value with the seconds portion

SET SECONDS OFF && Displays time value without the seconds portion
? DATETIME( )




SET SKIP (Comando)
Crea una relación de uno a varios entre tablas.

SET SKIP TO [TableAlias1 [, TableAlias2] ...]

Parámetros
TO TableAlias1 [, TableAlias2] ...
Especifica los alias de varias tablas secundarias. Éstas se utilizan para crear una relación de uno a varios con una tabla primaria. Utilice comas para separar los distintos alias. En los comandos que admiten un alcance (DISPLAY, LIST, etc.), los registros de la tabla primaria se repiten por cada registro correspondiente de la tabla secundaria.
Utilice SET SKIP TO sin argumentos adicionales para eliminar la relación uno a varios de la tabla primaria abierta en el área de trabajo actual. Cualquier relación uno a uno existente permanecerá vigente. Se puede utilizar SET RELATION TO para quitar las relaciones uno a uno.

Observaciones
Con SET RELATION puede establecer relaciones entra tablas abiertas en diferentes áreas de trabajo. Cuando el puntero de registro se mueve en la tabla primaria, el puntero de registro de la tabla secundaria se mueve al primer registro correspondiente. El registro al que se mueve el puntero de registro de la tabla secundaria está determinado por la expresión relacional SET RELATION. Se crea una relación uno a uno: por cada registro de la tabla primaria, el puntero de registro se mueve al primer registro coincidente de la tabla secundaria. Si no se encuentra un registro coincidente en la tabla secundaria, el puntero de registro de la tabla secundaria se moverá al final de la tabla.
Con frecuencia, una tabla secundaria contiene varios registros que corresponden a un registro de la tabla primaria. SET SKIP le permite establecer una relación uno a varios entre un registro de la tabla primaria y varios registros de la tabla secundaria. Cuando se mueve a través de la tabla primaria, el puntero de registro permanece en el mismo registro de la tabla primaria hasta que el puntero de registro se mueva a través de todos los registros relacionados de la tabla secundaria.
Para establecer una relación uno a varios, cree primero la relación entre las tablas primaria y secundaria con SET RELATION. Después, ejecute SET SKIP para crear la relación uno a varios.

Ejemplo
El ejemplo siguiente busca todas las apariciones en tres tablas donde cada elemento del primer campo es el mismo. Esto se logra explorando la primera tabla que tiene una relación con una segunda tabla, que a su vez tiene una relación con una tercera tabla. Luego, la primera tabla ejecuta SET SKIP para las otras dos tablas. Observe que SET SKIP en la segunda tabla no produce ningún efecto. Sólo afecta a la tabla que se explora (reemplaza, etc.). En el ejemplo se encuentran ocho coincidencias.

CLOSE DATABASES
* Creates parent table with values a and b in Name field
CREATE TABLE Parent FREE (Name C(1), Val C(10))
INSERT INTO Parent VALUES ('a', 'Parent.a1')
INSERT INTO Parent VALUES ('b', 'Parent.b1')

SELECT 0 && Child1 will have two a's and two b's
CREATE TABLE Child1 FREE (Name1 C(1), Val C(10))
INSERT INTO Child1 VALUES ('a', 'Child1.a1')
INSERT INTO Child1 VALUES ('b', 'Child1.b1')
INSERT INTO Child1 VALUES ('b', 'Child1.b2')
INSERT INTO Child1 VALUES ('a', 'Child1.a2')
INDEX ON Name1 TAG tagName && The tag name is irrelevant

SELECT 0 && Child2 will have two a's and two b's
CREATE TABLE Child2 FREE (Name2 C(1), Val C(10))
INSERT INTO Child2 VALUES ('b', 'Child1.b1')
INSERT INTO Child2 VALUES ('b', 'Child1.b2')
INSERT INTO Child2 VALUES ('a', 'Child1.a1')
INSERT INTO Child2 VALUES ('a', 'Child1.a2')
INDEX ON Name2 TAG tagName && The tag name is irrelevant

SELECT Child1
SET RELATION TO Name1 INTO Child2
SELECT Parent
SET RELATION TO Name INTO Child1
SET SKIP TO Child1, Child2 && Parent gets both skips.
&& Otherwise, only four record triplets
&& would be listed.
SCAN ALL && There will be eight triplets: four a's and four b's
? Parent.Val, Child1.Val, Child2.Val
ENDSCAN

SET SKIP OF (Comando)
Activa o desactiva un menú, una barra de menús, un título de menú o un elemento de menú para menús definidos por el usuario o para el menú del sistema de Microsoft Visual FoxPro.

SET SKIP OF MENU MenuBarName1 lExpression1
O bien:
SET SKIP OF PAD MenuTitleName OF MenuBarName2 lExpression2
O bien:
SET SKIP OF POPUP MenuName1 lExpression3
O bien:
SET SKIP OF BAR nMenuItemNumber SystemItemName OF MenuName2
lExpression4

Parámetros
MENU MenuBarName1 lExpression1
Activa o desactiva la barra de menús del sistema de Visual FoxPro o la barra de menús definida por el usuario, creada con DEFINE MENU. Por ejemplo, la barra de menús del sistema de Visual FoxPro, _MSYSMENU, se puede desactivar con este comando:
SET SKIP OF MENU _MSYSMENU .T.

Puede activarla con este comando:
SET SKIP OF MENU _MSYSMENU .F.

PAD MenuTitleName OF MenuBarName2 lExpression2
Activa o desactiva un título de menú del sistema de Visual FoxPro o un título de menú definido por el usuario, creado con DEFINE PAD. Por ejemplo, el título del menú Edición de Visual FoxPro puede desactivarse con este comando:
SET SKIP OF PAD _MSM_EDIT OF _MSYSMENU .T.

El título del menú se puede activar con este comando:
SET SKIP OF PAD _MSM_EDIT OF _MSYSMENU .F.

POPUP MenuName1 lExpression3
Activa o desactiva un menú del sistema de Visual FoxPro o un menú definido por el usuario, creado con DEFINE POPUP. Por ejemplo, el menú Edición de Visual FoxPro puede desactivarse con este comando:
SET SKIP OF POPUP _MEDIT .T.

El menú puede activarse con este comando:
SET SKIP OF POPUP _MEDIT .F.

BAR nMenuItemNumber SystemItemName OF MenuName2 lExpression4
Activa o desactiva un elemento de menú incluido en un menú del sistema de Visual FoxPro o un elemento de menú definido por el usuario, creado con DEFINE BAR. Por ejemplo, el comando Nuevo del menú Archivo de Visual FoxPro puede desactivarse con este comando:
SET SKIP OF BAR _MFI_NEW OF _MFILE .T.

donde SystemItemName especifica el comando de menú _MFI_NEW, MenuName2 especifica el menú _MFILE y lExpression4 especifica la expresión lógica .T.. El comando de menú se puede activar con este comando:
SET SKIP OF BAR _MFI_NEW OF _MFILE .F.

Use nMenuItemNumber para especificar un elemento de menú creado con DEFINE BAR.

Observaciones
También puede utilizar SYS(2013) para devolver los nombres internos de los menús del sistema.
Si la expresión lógica lExpression se evalúa con el valor verdadero (.T.), el menú, la barra de menús, el nombre del menú o el elemento de menú incluido en SET SKIP OF se desactivará, aparecerá atenuado y no se podrá seleccionar. Si lExpression se evalúa como falso (.F.), el menú, la barra de menús, el nombre del menú o el elemento de menú se activarán y podrán seleccionarse.




SET SPACE (Comando)
Determina si se muestra o no un espacio en blanco entre los campos o las expresiones al utilizar el comando ? o ??.

SET SPACE ON OFF

Parámetros
ON
(Predeterminado) Inserta un espacio entre campos y expresiones.

OFF
Quita todos los espacios entre campos o expresiones, y los ejecuta juntos.




SET STATUS BAR (Comando)
Muestra o quita la barra de estado gráfica.

SET STATUS BAR ON OFF

Parámetros
ON
(Predeterminado) Ejecute SET STATUS BAR ON para mostrar la barra de estado gráfica.

OFF
Ejecute SET STATUS BAR OFF para quitar la barra de estado gráfica.




SET STATUS (Comando)
Muestra o quita la barra de estado basada en caracteres.

SET STATUS ON OFF

Parámetros
ON
Si SET STATUS está establecido a ON, se muestra la barra de estado basada en caracteres con el nombre del programa actualmente en ejecución (si lo hay), el alias de la tabla activa, la posición del puntero en el registro actual, el número de registros de la tabla y el estado de las teclas Insert, Bloq Num y Bloq Mayús. El estado de bloqueo del registro o del archivo también se muestra en la barra de estado cuando se abre la tabla para uso compartido. La barra de estado se actualiza cada vez que ejecuta un comando que cambia la información de estado.

OFF
(Predeterminado) Ejecute SET STATUS OFF para quitar la barra de estado.




SET STEP (Comando)
Abre la ventana Seguimiento y suspende la ejecución del programa para depurarlo.

SET STEP ON

Parámetros
ON
Abre la ventana Seguimiento y suspende la ejecución del programa.

Observaciones SET STEP se utiliza para depurar programas. Puede insertar SET STEP ON en un programa en el lugar preciso donde desea ejecutar comandos individuales.
Puede transferir parámetros a un programa y, a continuación, hacer un seguimiento de su ejecución con los siguientes pasos:
1. Abra la ventana Seguimiento.
2. En el menú Programa de la ventana Seguimiento, elija Abrir y seleccione el programa del que desea hacer un seguimiento.
3. Establezca un punto de interrupción en la primera línea ejecutable del programa.
4. En la ventana Comandos, ejecute DO con el programa incluyendo los parámetros con WITH.




SET STRICTDATE (Comando)
Especifica si constantes ambiguas de tipo Date y DateTime generan errores.

SET STRICTDATE TO [0 1 2]

Parámetros
0
Especifica que está desactivada la comprobación del formato de fecha estricto. Este valor proporciona compatibilidad con versiones anteriores de Visual FoxPro. 0 es el valor predeterminado para el entorno de tiempo de ejecución de Visual FoxPro y el controlador ODBC. Cuando STRICTDATE está establecido en 0, los valores Date y DateTime no válidos se evalúan como cadenas vacías.

1
Especifica que todas las constantes Date y DateTime están en el formato de fecha estricto. Cualquier constante Date o DateTime que no esté en formato estricto o que se evalúe como un valor no valido genera un error, tanto en tiempo de compilación, como en tiempo de ejecución o durante una sesión interactiva de Visual FoxPro. 1 es el valor predeterminado para las sesiones interactivas en Visual FoxPro.

2
Equivale a establecer STRICTDATE en 1, pero además genera un error de compilación (2033 – CTOD y CTOT pueden producir resultados incorrectos) siempre que las funciones
CTOD( ) y CTOT( ) aparezcan en el código.
Como los valores devueltos por CTOD( ) y CTOT( ) se basan en SET DATE y SET CENTURY para interpretar la fecha que contienen, pueden producir errores de incompatibilidad con el año 2000. Utilice DATE( ) y DATETIME( ) con los argumentos numéricos opcionales para crear constantes y expresiones de tipo Date y DateTime.
Este valor es útil en las sesiones de depuración para detectar el código que pueda contener errores de compatibilidad con el milenio.

Observaciones
Tenga en cuenta que la propiedad
StrictDateEntry no se ve afectada por el valor de SET STRICTDATE.




SET SYSFORMATS (Comando)
Especifica si la configuración del sistema de Visual FoxPro se actualiza con la configuración del sistema actual de Windows.

SET SYSFORMATS ON OFF

Parámetros
ON
Especifica que la configuración del sistema de Visual FoxPro se actualiza cuando cambia la configuración del sistema de Windows. SET SYSFORMAT ON es idéntico a activar la casilla de verificación “Usar configuración del sistema” en la ficha Internacional del cuadro de diálogo Opciones. Observe que la emisión de SET SYSFORMAT ON cambia el valor de SET DATE a SHORT.
La configuración sirve para establecer la duración de la sesión de datos actual, o bien, si se ejecuta durante la sesión de datos predeterminada, para la duración de la sesión de Visual FoxPro.

OFF
(Predeterminado) Especifica que no se actualice la configuración del sistema de Visual FoxPro cuando se modifique la configuración del sistema de Windows. No se restaurará la configuración predeterminada de Visual FoxPro.

Observaciones
La configuración del sistema de Windows se especifica en la opción Internacional del Panel de control de Windows.
Cuando SET SYSFORMATS está en ON, pueden usarse los siguientes comandos SET para anular la configuración actual del sistema. Sin embargo, cambiar la configuración del sistema de Windows cuando SET SYSFORMATS está en ON invalida estos comandos SET.
· SET CENTURY
· SET CURRENCY
· SET DATE
· SET DECIMALS
· SET HOURS
· SET MARK TO
· SET POINT
· SET SEPARATOR

Cuando se inicia Visual FoxPro, la configuración del sistema de Visual FoxPro es la configuración predeterminada de estos comandos SET. Para utilizar la configuración del sistema de Windows cuando se inicia Visual FoxPro, incluya la línea siguiente en el archivo de configuración Config.fpw de Visual FoxPro:
SYSFORMATS = ON
SET SYSFORMATS tiene como alcance la sesión actual de datos.




SET SYSMENU (Comando)
Activa o desactiva la barra de menús del sistema de Visual FoxPro durante la ejecución del programa y permite reconfigurarla.

SET SYSMENU ON OFF AUTOMATIC TO [MenuList] TO [MenuTitleList]
TO [DEFAULT] SAVE NOSAVE

Parámetros
ON
Activa la barra de menús principal de Visual FoxPro durante la ejecución del programa cuando Visual FoxPro espera la introducción de datos a través del teclado durante comandos como BROWSE, READ y MODIFY COMMAND.

OFF
Desactiva la barra de menús principal de Visual FoxPro durante la ejecución del programa.

AUTOMATIC
Hace que la barra de menús principal de Visual FoxPro esté visible durante la ejecución del programa. La barra de menús queda accesible, y los elementos de menú se activan y se desactivan según convenga desde el comando actual.
AUTOMATIC es la configuración predeterminada.

TO [MenuList] TO [MenuTitleList]
Especifica un subconjunto de menús o de títulos de menús para la barra de menús principal de Visual FoxPro. La lista de menús o de títulos de menú puede contener cualquier combinación de menús o títulos separados por comas. Los nombres internos de los menús y de los títulos de menús se indican en el tema
nombres de menús del sistema.
Por ejemplo, el comando siguiente elimina todos los menús de la barra principal de menús de Visual FoxPro excepto los menús Archivo y Ventana:
SET SYSMENU TO _MFILE, _MWINDOW
Utilice RELEASE BAR para especificar los elementos disponibles en los menús.

TO [DEFAULT]
Restaura la barra de menús principal a su configuración predeterminada. Si ha modificado la barra de menús principal o sus menús, ejecute SET SYSTEM TO DEFAULT para restaurarla. Puede especificar una configuración predeterminada con SET SYSMENU SAVE.

SAVE
Hace que el sistema de menús actual tenga la configuración predeterminada. Si modifica el sistema de menús después de ejecutar SET SYSMENU SAVE, puede restaurar la configuración previa ejecutando SET SYSMENU TO DEFAULT.

NOSAVE
Restablece el sistema de menús al menú del sistema predeterminado de Visual FoxPro. Sin embargo, el menú del sistema predeterminado de Visual FoxPro no se mostrará hasta que no ejecute SET SYSMENU TO DEFAULT.

Observaciones
SET SYSMENU controla la barra principal de menús de Visual FoxPro durante la ejecución de un programa, y permite quitar y restaurar de forma selectiva títulos de menú y menús del sistema de menús principal de Visual FoxPro.
Al ejecutar SET SYSMENU TO sin ningún argumento adicional se desactiva la barra de menús principal de Visual FoxPro.




SET TALK (Comando)
Determina si Visual FoxPro muestra o no los resultados de los comandos.

SET TALK ON OFF WINDOW [WindowName] NOWINDOW

Parámetros
ON
(Predeterminado) Permite enviar la conversación a la ventana principal de Visual FoxPro, a la ventana de mensajes del sistema, a la barra de estado gráfica o a una ventana definida por el usuario. Si SET TALK está en OFF y se cambia a ON, la conversación se dirigirá a la misma ubicación a la que se enviaba antes de ejecutar SET TALK OFF.

OFF
Impide que la conversación se envíe a la ventana principal de Visual FoxPro, a la ventana de mensajes del sistema, a la barra de estado gráfica o a una ventana definida por el usuario. Observe que para los servidores de automatización .dll en proceso el valor predeterminado de SET TALK es OFF.

WINDOW [WindowName]
WindowName especifica una ventana definida por el usuario a la que se dirige la conversación. Es necesario crear la ventana definida por el usuario antes de dirigir la conversación hacia ella. La conversación se dirige a la ventana del sistema de Visual FoxPro en caso de que la ventana especificada no exista.

NOWINDOW
Dirige la conversación a la ventana principal de Visual FoxPro.

Observaciones Algunos comandos de procesamiento de tablas devuelven información, o "conversan", acerca de su estado mientras se ejecutan. Estos comandos son los siguientes:

Comandos
APPEND FROM
PACK
AVERAGE
REINDEX
CALCULATE
REPLACE
COPY TO
SELECT - SQL
COUNT
SORT
DELETE
SUM
INDEX
TOTAL

En Visual FoxPro, la conversación se puede dirigir a la ventana principal de Visual FoxPro, a la barra de estado gráfica o a una ventana definida por el usuario. También es posible desactivarla.
El intervalo de informe de SET TALK se puede especificar con SET ODOMETER. El valor predeterminado para SET ODOMETER es 100. Observe que la velocidad de ejecución puede disminuir cuando SET TALK está en ON, porque la ventana principal de Visual FoxPro o la ventana definida por el usuario se deben actualizar con frecuencia. Si solamente necesita el número total de registros procesados por un comando, ejecute SET TALK OFF y muestre la variable del sistema _TALLY una vez que el comando haya terminado de ejecutarse.
SET TALK tiene como alcance la sesión actual de datos.




SET TEXTMERGE (Comando)
Activa o desactiva la evaluación de campos, las variables, los elementos de matriz, las funciones o expresiones rodeadas por delimitadores de combinación de texto, y le permite especificar los resultados de la combinación de texto.

SET TEXTMERGE [ON OFF] [TO [FileName] MEMVAR VarName [ADDITIVE]]
[WINDOW WindowName] [SHOW NOSHOW]

Parámetros
ON
Especifica que los campos, las variables, los elementos de matriz, y las funciones o expresiones rodeadas por los delimitadores de combinación de texto se evalúen y se generen cuando se colocan después de \ o \\, o entre TEXT y ENDTEXT.
El corto programa de ejemplo siguiente demuestra cómo se evalúa el contenido de la variable gcTodayDate y de las funciones DATE( ) y TIME( ) cuando SET TEXTMERGE está en ON. La variable gcTodayDate, DATE( ) y TIME( ) se evalúan porque están encerrados entre delimitadores de combinación de texto y SET TEXTMERGE está definido en ON.

CLEAR
SET TALK OFF
STORE 'Today is: ' TO gcTodayDate
SET TEXTMERGE ON
\<>
\\<>
\The time is:
\\ <>

Este es el resultado del programa anterior cuando se ejecuta el 1 de enero:
Today is: 01/01/98
The time is: 10:55:19

OFF
(Predeterminado) Especifica que los campos, las variables, los elementos de matriz, y las funciones o expresiones se muestren literalmente junto con los delimitadores de texto que los rodean. Observe la diferencia del resultado cuando SET TEXTMERGE está en OFF con respecto al ejemplo anterior:

CLEAR
SET TALK OFF
STORE 'Today is: ' TO gcTodayDate
SET TEXTMERGE OFF
\<>
\\<>
\The time is:
\\ <>

Éste es el resultado del programa:
<><>
The time is: <>

TO [FileName]
Especifica que el resultado de \, \\ y TEXT ... ENDTEXT se dirige a un archivo de texto además de enviarse a la ventana principal de Visual FoxPro, que es el destino predeterminado. También puede dirigir el resultado a un archivo de texto si incluye FileName. Si no existe ningún archivo con ese nombre, se creará un archivo nuevo. Si ya existe un archivo con ese mismo nombre y SET SAFETY está en ON, se le ofrecerá la opción de sobrescribir el archivo existente.
El archivo de texto se abre como un archivo de bajo nivel y su controlador de archivo se almacena en la variable del sistema _TEXT. Puede cerrar el archivo ejecutando SET TEXTMERGE TO sin argumentos adicionales. Si el controlador de archivo u otro archivo se almacenó previamente en _TEXT, ese archivo se cerrará.

MEMVAR VarName
Especifica la variable en la que deben almacenarse los datos del resultado de TEXTMERGE.
Como SET TEXTMERGE es un valor global y puede abarcar varios procedimientos y métodos, MEMVAR VarName puede perder alcance. Este comando funcionará incluso cuando la variable está fuera del alcance, pero no devolverá ningún contenido. Para controlar el alcance de MEMVAR VarName, puede declarar la variable como de tipo PUBLIC o PRIVATE.
Esta cláusula también permite crear un comportamiento recursivo, que puede controlar con el comando SET TEXTMERGE TO, como en el siguiente ejemplo:

USE LABELS
STORE "" to myVar, myVar2

SET TEXT ON NOSHOW
SET TEXTMERGE TO MEMVAR myVar && TEXTMERGE begins on the next line

\Hey Now
\<>

SCAN
\ <>
ENDSCAN

* Uncomment the following line to eliminate the recursive error with myVar and myVar2
* SET TEXTMERGE TO

TEXT TO myVar2
how about some html.
wow this is cool
<>
ENDTEXT

SET TEXTMERGE OFF
USE

CLEAR
? myVar && But has also stored the TEXTMERGE contents to variables
? myVar2

ADDITIVE
Especifica que el resultado de \, \\ y TEXT ... ENDTEXT se anexará a un archivo o una variable de memoria existentes.

WINDOW WindowName
Especifica que el resultado de \, \\ y TEXT ... ENDTEXT se dirigirá a una ventana definida por el usuario, en lugar de a la ventana principal de Visual FoxPro, que es el lugar predeterminado. WindowName especifica el nombre de la ventana hacia la que desea dirigir el resultado. Es necesario haber creado la ventana con DEFINE WINDOW antes de enviar el resultado hacia ella. No es obligatorio que la ventana esté activa ni visible.

SHOW NOSHOW
(Predeterminado) SHOW muestra el resultado de la combinación de texto.
NOSHOW suprime la presentación del resultado de la combinación de texto.
De forma predeterminada, el resultado generado por \, \\ y TEXT ... ENDTEXT se envía a la ventana principal de Visual FoxPro o a una ventana activa definida por el usuario.

Observaciones
Los comandos \, \\ y TEXT ... ENDTEXT se utilizan para combinar texto con el contenido de tablas, variables, elementos de matrices y los resultados de funciones y expresiones. Si un campo, una variable, un elemento de matriz, una función o una expresión están rodeados por delimitadores de combinación de texto (de forma predeterminada, <<>>) pueden evaluarse y combinarse con texto. Esta capacidad para combinar texto le permite producir cartas, programas y plantillas que creen programas.
SET TEXTMERGE determina la forma en que se evalúan los campos, las variables, los elementos de matriz, y las funciones o expresiones rodeadas por delimitadores de combinación de texto. También permite dirigir el resultado de combinación de texto hacia la ventana principal de Visual FoxPro, una ventana definida por el usuario o un archivo.
Los campos memo pueden utilizarse para anidar texto combinado. Si un campo memo contiene nombres de campos, variables, o funciones o expresiones rodeadas por los delimitadores de combinación de texto actuales, se evaluarán y mostrarán con el contenido del campo memo. El nombre del campo memo debe estar también entre delimitadores de combinación de texto.




SET TEXTMERGE DELIMITERS (Comando)
Especifica los delimitadores de la combinación de texto.

SET TEXTMERGE DELIMITERS [TO cLeftDelimiter [, cRightDelimiter]]

Parámetros
TO cLeftDelimiter [, cRightDelimiter]
Especifica los delimitadores. Si sólo especifica un delimitador con cLeftDelimiter, tanto el delimitador izquierdo como el derecho se establecerán en cLeftDelimiter. Si especifica ambos delimitadores con cLeftDelimiter y cRightDelimiter, el delimitador izquierdo se establecerán en cLeftDelimiter y el delimitador derecho se establecerá cRightDelimiter.

Observaciones
Con SET TEXTMERGE DELIMITERS puede especificar un conjunto de delimitadores de combinación de texto distintos de los predeterminados, los cuales son los ángulos dobles (<<>>). Los delimitadores actuales pueden mostrarse con DISPLAY STATUS.
Si ejecuta SET TEXTMERGE DELIMITERS sin ningún argumento adicional, se restaurarán los delimitadores predeterminados.




SET TOPIC (Comando)
Especifica el tema o los temas de Ayuda que se abren cuando invoca el sistema de Ayuda de Visual FoxPro.

SET TOPIC TO [cHelpTopicName lExpression]

Parámetros
cHelpTopicName
Especifica el nombre del tema de Ayuda que quiere mostrar.

lExpression
Una expresión lógica que es la base para la apertura de uno o varios tópicos determinados.




SET TOPIC ID (Comando)
Especifica el tema de Ayuda que se va a mostrar al invocar el sistema de Ayuda de Visual FoxPro. El tema de Ayuda se basa en el identificador de contexto del tema.

SET TOPIC ID TO nHelpContextID

Parámetros
nHelpContextID
Especifica el tema de Ayuda que va a aparecer en pantalla, basándose en un Id. de contexto numérico. nHelpContextID es un número de contexto en la sección MAP del archivo del proyecto de Ayuda.




SET TRBETWEEN (Comando)
Activa o desactiva el seguimiento entre puntos de interrupción en la ventana Seguimiento.

SET TRBETWEEN ON OFF

Parámetros
ON
Especifica que las líneas de código del programa se vayan mostrando y resaltando en la ventana Seguimiento a medida que se ejecutan. Ejecutar SET TRBETWEEN ON es lo mismo que activar el comando Seguimiento entre puntos de interrupción en el menú Programa de la ventana Seguimiento.

OFF
(Predeterminado). Especifica que solamente se resalte en la ventana Seguimiento la última línea en la que se interrumpió la ejecución del programa. Ejecutar SET TRBETWEEN OFF es lo mismo que desactivar el comando Seguimiento entre puntos de interrupción.

Observaciones
La ventana Seguimiento muestra el código fuente de un programa a medida que se ejecuta. La línea del programa que se está ejecutando aparece resaltada. Cuando la ventana Seguimiento está abierta, puede establecer puntos de interrupción que detengan la ejecución del programa.
La ventana Seguimiento puede abrirse también ejecutando ACTIVATE WINDOW TRACE, SET ECHO ON o SET STEP ON.




SET TYPEAHEAD (Comando)
Especifica el número máximo de caracteres que pueden almacenarse en el búfer de escritura.

SET TYPEAHEAD TO nCharacters

Parámetros
nCharacters
Especifica el número máximo de caracteres que se van a almacenar en el búfer de escritura.
No se almacena ningún carácter en el búfer de escritura en caso de ejecutar SET TYPEAHEAD TO 0. Esta instrucción desactiva INKEY( ) y ON KEY.

Observaciones
El búfer de escritura puede almacenar hasta 32.000 caracteres hasta que estén listos para procesarse. El valor predeterminado de SET TYPEAHEAD es 20.


SET UDFPARMS (Comando)
Especifica si Visual FoxPro transfiere los parámetros a una función definida por el usuario (FDU) por valor o por referencia.

SET UDFPARMS TO VALUE REFERENCE

Parámetros
TO VALUE

Especifica que una variable se transfiera por valor a una función definida por el usuario. Al transferir una variable por valor, el valor de la variable se puede modificar en la función definida por el usuario, pero el valor original de la variable en el programa que llama no se modifica.

TO REFERENCE
Especifica que una variable se transfiera por referencia a una función definida por el usuario. Cuando una variable se transfiera por referencia y la función definida por el usuario cambie el valor de la variable transferida, el valor original de la variable en el programa que llama también se modificará.

Observaciones
De forma predeterminada, las variables se transfieren por valor a una función definida por el usuario. (Las variables transferidas a procedimientos con DO ... WITH se transfieren por referencia).
Puede forzar que los parámetros se transfieran a una FDU por valor o por referencia, independientemente de la configuración de SET UDFPARMS. Encierre la variable entre paréntesis para obligar a que se transfiera por valor. Anteponga el símbolo @ a la variable para forzar a que se transfiera por referencia.

Sugerencia Pueden transferirse matrices completas a un procedimiento o FDU. Se transferirá la matriz completa si ejecuta SET UDFPARMS TO REFERENCE o si incluye @ delante del nombre de la matriz. Si ejecuta SET UDFPARMS TO VALUE o escribe el nombre de la matriz entre paréntesis, se pasa por valor el primer elemento de la matriz. Los elementos de matriz siempre se pasan por valor.

Ejemplo
El ejemplo siguiente ilustra la diferencia entre transferir variables por valor y por referencia.

*** Pass variable by value ***
CLEAR
SET TALK OFF
WAIT 'Press a key to pass by value' WINDOW
SET UDFPARMS TO VALUE
STORE 1 TO gnX

*** The value of gnX is unchanged ***
@ 2,2 SAY 'UDF value: ' + STR(plusone(gnX))
@ 4,2 SAY 'Value of gnX: ' + STR(gnX)

*** Pass variable by reference ***
WAIT 'Press a key to pass by reference' WINDOW
CLEAR
SET UDFPARMS TO REFERENCE
STORE 1 TO gnX
*** The value of gnX is changed ***
@ 2,2 SAY 'UDF value: ' + STR(plusone(gnX))
@ 4,2 SAY 'Value of X: ' + STR(gnX)
SET UDFPARMS TO VALUE

*** This is a UDF that adds one to a number ***
FUNCTION plusone
PARAMETER gnZ
gnZ = gnZ + 1
RETURN gnZ
*** End of UDF ***

Aquí está el ejemplo anterior con las variables transferidas por valor y por referencia, a través del uso de paréntesis y @, respectivamente:

*** Pass variable by value ***
CLEAR
SET TALK OFF
WAIT 'Press a key to pass by value' WINDOW
STORE 1 TO gnX
@ 2,2 SAY 'UDF value: ' + STR(plusone((gnX)))
@ 4,2 SAY 'Value of gnX: ' + STR(gnX)

*** Pass variable by reference ***
WAIT 'Press a key to pass by reference' WINDOW
CLEAR
STORE 1 TO gnX
@ 2,2 SAY 'UDF value: ' + STR(plusone(@gnX))
@ 4,2 SAY 'Value of gnX: ' + STR(gnX)

*** This is a UDF that adds one to a number ***
FUNCTION plusone
PARAMETER gnZ
gnZ = gnZ + 1
RETURN gnZ
*** End of UDF ***


SET UNIQUE (Comando)
Especifica si los registros con valores de clave de índice duplicados se mantienen en un archivo de índice.

SET UNIQUE ON OFF

Parámetros
ON
Especifica que los registros con un valor de clave de índice duplicado no se incluyan en el archivo de índice. Únicamente se incluye en el archivo de índice el primer registro con el valor de la clave de índice original.

OFF
(Predeterminado) Especifica que los registros con valores de clave de índice duplicados se incluyan en el archivo de índice.

Observaciones
Un archivo de índice conserva la configuración de SET UNIQUE al ejecutar REINDEX.
SET UNIQUE tiene como alcance la sesión actual de datos.




SET VIEW (Comando)
Abre o cierra la ventana Sesión de datos o restaura el entorno de Visual FoxPro desde un archivo de vista.

SET VIEW ON OFF
-or-
SET VIEW TO FileName ?

Parámetros
ON
Abre la ventana Sesión de datos.

OFF
(Predeterminado) Cierra la ventana Sesión de datos.

TO FileName
Restaura el entorno de Visual FoxPro al estado en que se encontraba cuando se creó el archivo de vista especificado con FileName. Los archivos de vista se crean con CREATE VIEW.

?
Muestra el cuadro de diálogo Abrir, desde el cual puede abrir un archivo de vista.

SET VOLUME (Comando)
Asigna designadores de unidad de MS-DOS (A:, B:, C:, etc.) a volúmenes o carpetas en FoxPro para Macintosh.

SET VOLUME cMS-DOSDrive TO [cMacintoshPath]

Parámetros
cMS-DOSDrive

Especifica un designador de unidad de MS-DOS, que puede ser cualquier letra de la A a la Z. Los dos puntos de delimitador de unidad, como en A: o C:, son opcionales.

cMacintoshPath
Especifica un nombre de volumen, un nombre de volumen con un nombre de carpeta, una carpeta anidada o la notación abreviada de Macintosh (: o ::) o de MS-DOS (\ o ..).
Si cMacintoshPath incluye un nombre de volumen o de carpeta que contiene un espacio, deberá escribirse el valor de cMacintoshPath entre comillas. Si incluye una ruta incompleta en cMacintoshPath, dicha ruta se referirá a la carpeta predeterminada actual.

Observaciones
Este comando es más eficaz en FoxPro para Macintosh.
SET VOLUME ayuda a convertir aplicaciones creadas en FoxPro para MS-DOS y Visual FoxPro a FoxPro para Macintosh. Por cada instancia de un designador de unidad de MS-DOS especificado, FoxPro para Macintosh sustituye internamente el volumen o carpeta de Macintosh que designe.
Cuando inicie FoxPro para Macintosh no habrá ninguna designación de volumen o carpeta predeterminada. Sin embargo, puede especificar un volumen o una carpeta predeterminados en el archivo de configuración de Visual FoxPro con el elemento de configuración VOLUME.
Utilice DISPLAY STATUS para mostrar el volumen o la asignación de carpeta actual.

Ejemplo
Los siguientes comandos asignan cada instancia de una unidad C de MS-DOS a un volumen de Macintosh llamado MacHD o Mac HD:
SET VOLUME C: TO MacHD:
SET VOLUME C: TO 'Mac HD:'
SET VOLUME C TO 'Mac HD:'

También puede especificar una carpeta con un volumen de Macintosh:
SET VOLUME C: TO MacHD:FolderOne
SET VOLUME C TO 'MacHD:Folder One'

También puede utilizar la notación abreviada de MS-DOS y Macintosh. Para asignar cada instancia de una unidad C de MS-DOS al volumen de Macintosh actual, ejecute el siguiente comando:
SET VOLUME C TO \

To map every occurrence of an MS-DOS C drive to the FoxPro for Macintosh startup volume, issue SET VOLUME without cMacintoshPath:
SET VOLUME C TO




¿Qué es una Instrucción? Es una palabra reservada por Fox, la cual no puede ser utilizada como nombre




Instrucciones de Operación:
USE:
Abre una base de datos. CREATE: Crea una base de datos. CREATE REPORT: Crea un informe. LIST: Lista la información de una base de datos. LIST STRUCTURE: Lista la estructura de una base de datos. MODIFY STRUCTURE: Modifica la estructura de una base de datos. MODIFY REPORT: Modifica una información. DELETE: Borra registros de una base de datos. DELETE FILE: Borra un archivo. GO: Ubica el puntero en un registro en especial. GO TOP: Ubica el puntero en el 1er. Registro de la base de datos. GO BOTTOM: Ubica el puntero en el último registro de la base de datos. EDIT: Cambia los registros de una base de datos en una ventana de edición. FIND: Encuentra un registro en una base de datos. BROWSE: Crea una ventana de visualización de los datos de una base de datos en forma horizontal. APPEND: Añade registros a una base de datos. CLOSE: Cierra una base de datos. INDEX: Crea un archivo índice. PACK: Elimina físicamente registros con la marca de borrado de archivo de base de datos. SEEK: Busca en una base de datos indexada. CLEAR: Borra la pantalla. QUIT: Genera la salida de Fox. ZAP: Elimina los registros marcados de una base de datos.




Instrucciones de Programación:
?: Evalúa expresiones y visualiza el resultado en la pantalla. ACCEPT: Acepta desde la pantalla una cadena de caracteres. APPEND BLANK: Añade un registro en blanco a la base de datos. MODIFY COMMAND: Entra al editor de Fox. DO: Activa los programas de Fox. DO WHILE: Realiza la ejecución de un bucle mientras sea verdadera la condición especificada. REINDEX: Actualiza los archivos índices existentes. RECALL: Recupera registros borrados lógicamente. RUN/!: Ejecuta un programa externo. WAIT: Espera una entrada desde el teclado. CALL: Llama una sub-rutina cargada en memoria. CANCEL: Cancela un programa en ejecución. COUNT: Cuenta los registros de una base de datos. @...SAY/GET: Realiza la entrada y salida en la fila y columna especificada. @...BOX: Dibuja un marco. @...CLEAR: Borra un área especificada de la pantalla o ventana. @...PROMPT: Crea un menú de barra. ACTIVATE MENU: Visualiza y activa un menú de barra. ACTIVATE POPUP: Visualiza y activa menú. ACTIVATE SCREEN: Dirige la salida a la pantalla. ACTIVATE WINDOW: Visualiza y activa una ventana. APPEND MEMO: Llena un campo memo desde un archivo. DEACTIVE MENU: Desactiva un menú y lo borra de la pantalla. DEACTIVE POPUP: Desactiva una ventana y la borra de la pantalla. DEACTIVE WINDOW: Desactiva ventanas y las borra de la pantalla. DEFINE BAR: Define una opción del menú. DEFINE BOX: Dibuja un recuadro alrededor del texto. DEFINE MENU: Crea un menú de barra. DEFINE PAD: Define un pad sobre el menú de barra. DEFINE POPUP: Crea un menú. DEFINE WINDOW: Crea una ventana. DO CASE: Ejecuta instrucciones en un bucle, un especificado número de veces. EJECT: Hace avanzar la impresora al comienzo de la siguiente pagina. FOR...ENDFOR: Ejecuta instrucciones en un bucle, un especificado número de veces. HIDE MENU: Oculta un menú de barra. HIDE POPUP: Oculta un menú. HIDE WINDOW: Quita una ventana de la pantalla. IMPUT: Introduce un dato a una variable de memoria. ON ESCAPE: Interrumpe un programa al pulsar la tecla ESC. ON READERROR: Ejecuta una rutina por un error de entrada. READ: Lee datos de @... SAY/GET. SET BELL ON/OFF: Conmuta la campana e inicializa atributos. SET BLINK: Especifica los atributos de pantalla y colores. SET CLOCK: Sitúa el reloj en la pantalla y especifica su posición. SET COLOR: Se definen los colores del sistema de interfaz (sistema menú de barra). SET COLOR TO: Especifica los colores de los menús y ventanas definidos por el usuario. SET CONFIRM: Especifica si una tecla de finalización debe ser pulsada cuando se sale de un campo o de una elección de menú de barra. SET CONSOLE ON/OFF: Direcciona la salida a una venta o a la pantalla. SET CURSOR ON/OFF: Visualiza o esconde el cursor. SET DATE: Especifica el formato de la fecha. SET DELETED: Especifica si los registros marcados para borrar serán usados. SET ESCAPE ON/OFF: Habilita o inhabilita la tecla escape. SET INTENSITY ON/OFF: Sobre iluminar la entrada de campos durante la edición. SET MESSAGE: Define un mensaje y su localización en la pantalla o en una ventana. SET MOUSE ON/OFF: Habilita un ratón y controla su sensibilidad. SET PATH: Especifica el camino de directorio para búsqueda de archivos. SET PRINTER ON/OFF: Habilita o inhabilita la salida a la impresora y especifica un puerto de salida. SET SCOREBOARD ON/OFF: Específica donde es visualizado el estado de las teclas: NUM LOCK, CAPS LOCK e INSERT. SET SHADOWS ON/OFF: Sitúa o elimina las sombras detrás de las ventanas. SET TALK ON/OFF: Habilita o inhabilita información sobre el avance de las ordenes. SORT: Ordena una base de datos. SUM: Calcula la suma de campos numéricos. SUSPEND: Suspende la ejecución de un programa. TEXT... ENDTEXT: Da la salida a línea de textos. TOTAL: Computa o calcula totales de campos numéricos. FUNCTION: Define el comienzo de una sub-rutina. PROCEDURE: Define el comienzo de una sub-rutina. PARAMETERS: Define variables de memoria como parámetros de procedimientos.




Instrucciones de Función:
ALLTRIM (): Elimina los primeros y últimos blancos de una expresión o carácter. BAR (): Devuelve el número del último indicador de barra seleccionado de un menú. BOF (): Devuelve un valor verdadero, si el puntero de registro esta posesionado en el comienzo de una base de datos. CAPSLOCK (): Devuelve el estado actual de CAPSLOCK. CDOW (): Devuelve el día de la semana que corresponde a un dato tipo fecha. CHR (): Devuelve el carácter correspondiente a la tabla ASCII. CMONTH (): Devuelve el nombre del mes que corresponde a un dato tipo fecha. COL (): Devuelve la posición de la columna actual del cursor. CTOD (): Convierte una expresión de caracteres a una expresión de fecha. CURDIR (): Devuelve el directorio actual del DOS. DATE (): Devuelve la fecha actual del sistema. DAY (): Devuelve el día del mes correspondiente a un dato tipo fecha. DBF (): Devuelve el nombre de archivo de la base de datos. DELETED (): Devuelve un valor verdadero, si el registro actual está marcado para borrado. DISKSPACE (): Devuelve el espacio disponible actual en la unidad de disco por omisión. DMY (): Convierte una expresión de fecha a un formato de día, mes, año. DOW (): Devuelve el día numérico de la semana correspondiente a un dato de fecha. DTOC (): Devuelve una expresión de tipo fecha a una expresión carácter. EOF (): Devuelve un valor verdadero si el puntero de registro esta posesionado al final del archivo de la base de datos. FIELD (): Devuelve el nombre de un campo de una base de datos. INKEY (): Devuelve un valor entero que corresponde al valor ASCII de la última tecla pulsada, o a un solo clic de ratón. INT (): Devuelve la parte entera de una expresión numérica. ISALPHA (): Devuelve un valor verdadero si una expresión carácter comienza con un carácter alfabético. ISCOLOR (): Devuelve un valor verdadero si está corriendo con un monitor a color. ISLOWER (): Devuelve un valor verdadero sí el primer carácter de una expresión de tipo carácter esta en minúscula. ISUPPER (): Devuelve un valor verdadero sí el primer carácter de una expresión de tipo carácter esta en mayúscula. LEN (): Devuelve la longitud de una expresión de tipo carácter. LTRIM (): Quita los primeros blancos de una expresión de tipo carácter. OS (): Devuelve el nombre y número de versión del sistema operativo bajo el que se está corriendo Fox. RECND (): Devuelve el número de registro actual de una base de datos. STR (): Convierte una expresión numérica a una expresión carácter. VAL (): Devuelve el valor numérico de una expresión de tipo carácter compuesta por dígitos. TIME (): Devuelve la hora actual del sistema. SYS (): Da información del sistema. TRIM (): Recorta los blancos finales de una expresión de tipo carácter. VERSION (): Devuelve la versión actual de Fox que está siendo ejecutada. WCOLS (): Devuelve el número de columnas disponibles en una ventana.

No hay comentarios: