miércoles, 3 de septiembre de 2008

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.

COMANDOS DE CONFIGURACION (SET) DE VISUAL FOXPRO (2)

SET FIELDS (Comando)
Especifica a qué campos de una tabla puede tener acceso.

SET FIELDS ON OFF LOCAL GLOBAL
O bien:
SET FIELDS TO [[FieldName1 [, FieldName2 ...]]
ALL [LIKE Skeleton EXCEPT Skeleton]]
Parámetros
ON
Especifica que sólo puede tener acceso a los campos de la lista de campos.

OFF
(Predeterminado) Especifica que puede tener acceso a todos los campos de la tabla actual.

LOCAL
Especifica que sólo se puede tener acceso a los campos del área de trabajo actual incluidos en la lista de campos.

GLOBAL
Especifica que se puede tener acceso a todos los campos de la lista de campos, incluidos los de otras áreas de trabajo.
SET FIELDS GLOBAL le permite tener acceso a campos de otras áreas de trabajo sin ejecutar SET COMPATIBLE TO DB4.

TO [FieldName1 [, FieldName2 ...]]
Especifica los nombres de campos a los que se puede tener acceso en la tabla actual. Debe incluir un alias con el nombre del campo en estos casos:
· Cuando el campo está en una tabla abierta en un área de trabajo distinta de la seleccionada actualmente.
· Cuando los nombres de los campos son los mismos en dos o más tablas.

Puede incluir campos de tablas abiertas en otras áreas de trabajo si asigna alias de tabla como prefijo a los nombres de campo. Sin embargo, no podrá tener acceso a estos campos a menos que ejecute SET FIELDS GLOBAL o SET COMPATIBLE DB4.
La lista de campos puede contener instrucciones para crear campos calculados. Un campo calculado contiene datos de sólo lectura creados con una expresión. Esta expresión puede adoptar cualquier forma, pero debe ser una expresión válida de FoxPro. No puede tener acceso a los campos calculados a menos que ejecute SET FIELDS GLOBAL o SET COMPATIBLE DB4.
El formato de la instrucción que se utiliza para crear un campo calculado es la siguiente:
=

El ejemplo siguiente crea un campo calculado llamado LOCATION:
CLOSE DATABASES
USE customer
SET FIELDS TO LOCATION = ALLTRIM(city) + ', ' + state
CITY y REGION son los nombres de los campos de la tabla seleccionada.

ALL
Permite tener acceso a todos los campos de la tabla actual.

ALL LIKE Skeleton EXCEPT Skeleton
Puede tener acceso selectivamente a los campos incluyendo la cláusula LIKE, EXCEPT o ambas. Si incluye LIKE Skeleton, podrá tener acceso a los campos que coincidan con Skeleton. Si incluye EXCEPT Skeleton, podrá tener acceso a todos los campos excepto los que coincidan con Skeleton.
La estructura Skeleton admite caracteres comodín como * y ? Por ejemplo, para tener acceso a campos que comiencen por las letras A y P, ejecute:
SET FIELDS TO ALL LIKE A*,P*

Puede combinar la cláusula LIKE con la cláusula EXCEPT:
SET FIELDS TO ALL LIKE A*,P* EXCEPT PARTNO*
Observaciones
SET FIELDS TO es aditivo: al ejecutar SET FIELDS TO con una lista de campos se agregarán los campos especificados a los que estén ya accesibles.
Al ejecutar SET FIELDS TO se ejecuta implícitamente SET FIELDS ON. Al ejecutar SET FIELDS TO sin ningún argumento adicional, se ejecutará implícitamente SET FIELDS OFF. Ejecute SET FIELDS TO sin incluir una lista de campos ni ALL para eliminar todos los campos de la lista de campos de la tabla actual.
SET FIELDS tiene como alcance la sesión actual de datos.




SET FILTER (Comando)
Especifica una condición que deben cumplir los registros de la tabla actual para estar accesibles.

SET FILTER TO [lExpression] [IN nWorkArea cTableAlias]
Parámetros
lExpression
Especifica la condición que deben cumplir los registros.
Si la tabla actual está indizada en uno o más campos especificados en lExpression, la tecnología Rushmore de Visual FoxPro permite optimizar las consultas basadas en estos campos.

IN nWorkArea cTableAlias
Especifica el área de trabajo o el alias de tabla afectado por el comando SET FILTER. Utilice esta cláusula para especificar una área de trabajo o una tabla externa al área de trabajo actual.
Observaciones
Una vez ejecutado SET FILTER, solamente están disponibles en la tabla los registros que satisfacen la condición especificada con la expresión lógica lExpression. Todos los comandos de acceso a la tabla respetan la condición de SET FILTER. Se puede definir un filtro distinto para cada tabla abierta.
La condición especificada por SET FILTER no se evalúa hasta que el puntero de registro se mueve en la tabla.
Al ejecutar SET FILTER TO sin lExpression se desactiva el filtro para la tabla actual.
SELECT - SQL no respeta la condición de filtro actual.




SET FIXED (Comando)
Especifica si el número de indicadores decimales que se utilizarán al mostrar datos numéricos es fijo o no.

SET FIXED ON OFF
Parámetros
ON
Use la configuración de SET DECIMALS para determinar el número de decimales que se muestran en el resultado. El número predeterminado de indicadores decimales es 2.

OFF
(Predeterminado) Permite que el número de indicadores decimales mostrado en los resultados dependa de las constantes, las variables y los operadores específicos utilizados en una expresión numérica. El contenido de los campos se mostrará con el número de cifras decimales declarados.
Observaciones
SET FIXED tiene como alcance la sesión actual de datos.



SET FULLPATH (Comando)
Especifica si CDX( ), DBF( ), MDX( ) y NDX( ) devuelven la ruta de acceso en un nombre de archivo.

SET FULLPATH ON OFF
Parámetros
ON
(Predeterminado) Especifica que CDX( ), DBF( ), IDX( ) y NDX( ) devuelven el designador de unidad, la ruta de acceso y el nombre del archivo.

OFF
Solamente se devolverá el designador de unidad y el nombre de archivo.




SET FUNCTION (Comando)
Asigna una expresión (macro de teclado) a una tecla de función o combinación de teclas.

SET FUNCTION nFunctionKeyNumber KeyLabelName TO [eExpression]
Parámetros
nFunctionKeyNumber
Especifica el número de la tecla de función asignada a la macro. Por ejemplo, utilice SET FUNCTION 2 para especificar la tecla de función F2.

KeyLabelName
Especifica una combinación de teclas, como una tecla de función, a la que se desea asignar la macro. Visual FoxPro admite combinaciones de teclas que incluyen teclas de función. Puede utilizar las teclas CTRL o MAYÚS combinadas con una tecla de función para crear teclas programables adicionales.

TO [eExpression]
Especifica la serie de pulsaciones de tecla almacenadas en la tecla de función o en la combinación de teclas. Visual FoxPro interpreta un punto y coma (;) en la expresión como un retorno de carro.
Las definiciones de teclas de función pueden borrarse con CLEAR MACROS.




SET FWEEK (Comando)
Especifica los requisitos de la primera semana del año.

SET FWEEK TO [nExpression]
Parámetros
nExpression
Especifica un valor que determina los requisitos de la primera semana del año. La tabla siguiente indica los valores que puede adoptar nExpression y los requisitos correspondientes para la primera semana del año:

nExpression Requisito de la primera semana
1 (Predeterminado) La primera semana contiene el 1 de enero.
2 La mitad más grande (cuatro días) de la primera semana está en el año actual.
3 La primera semana tiene siete días.

Si omite nExpression, la primera semana del año se restablecerá en 1 (la primera semana contiene el 1 de enero).
Observaciones
La primera semana del año también se puede establecer con el cuadro de lista Primera semana del año de la ficha
Regional, en el cuadro de diálogo Opciones.
Ejemplo
STORE SET('FWEEK') TO gnFweek && Save current value
SET FWEEK TO 1 && First week contains January 1st
SET FWEEK TO 3 && First week has seven days
SET FWEEK TO &gnFweek && Restore original setting




SET HEADINGS (Comando)
Determina si se muestran o no encabezados de columna para los campos, y si se incluye información de archivos cuando se ejecuta TYPE para mostrar el contenido de un archivo.

SET HEADINGS ON OFF
Parámetros
ON
(Predeterminado) Especifica que se muestren los nombres de campo.
Si se ejecuta TYPE para mostrar el contenido de un archivo, Visual FoxPro insertará un avance de formulario, la ruta de acceso, el nombre del archivo y la fecha al principio del resultado mostrado.

OFF
Especifica que los nombres de los campos no se muestran.
Si se ejecuta TYPE para mostrar el contenido de un archivo, Visual FoxPro no insertará información adicional acerca del archivo al principio del resultado mostrado.
Observaciones
SET HEADINGS especifica si se mostrará el nombre de campo como encabezado de columna encima de cada campo en el resultado de AVERAGE, CALCULATE, DISPLAY, LIST y SUM.




SET HELP (Comando)
Activa o desactiva la Ayuda en pantalla de Visual FoxPro o especifica un archivo de Ayuda.

SET HELP ON OFF
O bien:
SET HELP [TO [FileName]] [COLLECTION [cCollectionURL]] [SYSTEM]
Parámetros
ON
(Predeterminado) Muestra la ventana Ayuda al presionar F1 o ejecutar HELP en la ventana Comandos.

OFF
Hace que la Ayuda interactiva de Visual FoxPro no esté disponible.

TO [FileName]
Especifica el archivo de Ayuda que se muestra al presionar F1 o ejecutar HELP. Puede especificar un archivo de Ayuda estilo .DBF, un archivo Winhelp (.Hlp) o un archivo de ayuda HTML (.Chm).
En esta versión de Visual FoxPro, si ejecuta SET HELP TO sin incluir un nombre de archivo, Visual FoxPro busca el archivo de Ayuda a predeterminado, foxhelp.chm.

COLLECTION [cCollectionURL]
Especifica el nombre de una colección de Ayuda HTML que se va a utilizar como origen de la Ayuda.

SYSTEM
Especifica que se utilice un nombre de colección como origen de la Ayuda.
Observaciones
Use SET HELP para proporcionar un archivo de Ayuda en pantalla adaptado en una aplicación personalizada o para conmutar entre los distintos archivos de Ayuda de Visual FoxPro. Si realiza una instalación completa de la biblioteca MSDN (Microsoft Developer’s Network), o una instalación personalizada de la biblioteca MSDN y especifica que desea instalar la documentación de Visual FoxPro, se instala el archivo de Ayuda de Visual FoxPro, Foxhelp.chm. Este archivo se instala de manera predeterminada con el producto Visual FoxPro.
En la tabla siguiente se describen los valores del Registro para la configuración de la Ayuda:

Valor Clave del Registro Valor del Registro
SET HELP ON OFF HelpOn 0 ó 1
SET HELP TO cfilename HelpTo cFileName
SET HELP COLLECTION cCollectionURL HelpCollection cCollectionURL
SET HELP SYSTEM HelpSystem 0 ó 1

También puede usar la opción Archivo de Ayuda de la ficha
Archivos del cuadro de diálogo Opciones para especificar un archivo de Ayuda de forma interactiva.




SET HELPFILTER (Comando)
Permite a Visual FoxPro mostrar un subconjunto de temas de Ayuda estilo .DBF en la ventana Ayuda.

SET HELPFILTER [AUTOMATIC] TO [lExpression]
Parámetros
AUTOMATIC
Elimina automáticamente los criterios especificados con SET HELPFILTER después de cerrar la ventana Ayuda. La inclusión de AUTOMATIC tiene el mismo efecto que ejecutar SET HELPFILTER TO inmediatamente después de cerrar la ventana Ayuda. AUTOMATIC debe colocarse justo delante de TO lExpression.

lExpression
Especifica una expresión lógica utilizada para filtrar los temas de Ayuda. Solamente se muestran los temas para los cuales lExpression se evalúa como verdadero (.T.). lExpression suele contener el nombre de un campo en la tabla de ayuda.
Observaciones
Sólo es posible establecer un filtro de estilo .dbf para la Ayuda. No puede establecer un filtro para la Ayuda gráfica.




SET HOURS (Comando)
Establece el formato de hora del reloj del sistema en 12 ó 24 horas.

SET HOURS TO [12 24]
Parámetros
TO 12
(Predeterminado) Especifica el formato de 12 horas.

TO 24
Especifica el formato de 24 horas.
Observaciones
Utilice SET HOURS TO sin 12 ni 24 para volver al formato de 12 horas predeterminado.
TIME( ) devuelve siempre un valor en formato 24 horas y no se ve afectado por SET HOURS. El valor devuelto por DATETIME( ) se determina con la configuración actual de SET HOURS.
SET HOURS tiene como alcance la sesión de datos actual.




SET INDEX (Comando)
Abre uno o más archivos de índice para utilizarlos con la tabla actual.

SET INDEX TO [IndexFileList ? ] [ORDER nIndexNumber
IDXIndexFileName [TAG] TagName [OF CDXFileName] [ASCENDING
DESCENDING]] [ADDITIVE]
Parámetros
IndexFileList
Especifica uno o varios archivos de índice que desea abrir. Utilice comas para separar los diversos archivos de índice de la lista. La lista de archivos de índice puede contener cualquier combinación de nombres de archivo .idx y .cdx; no es necesario que incluya las extensiones de los archivos a menos que exista otro archivo .idx o .cdx con el mismo nombre.
El primer archivo de índice de la lista de archivos de índice se convierte en el archivo índice de control, que controla el acceso y la presentación de los registros. Los registros se muestran o se tiene acceso a ellos en el orden físico de los registros si el primer archivo de índice es un archivo .cdx y no se ha ejecutado SET ORDER TO TAG.

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

ORDER nIndexNumber
Especifica un archivo o etiqueta de índice de control. La expresión numérica nIndexNumber especifica los archivos de índice tal y como aparecen en la lista de archivos de índice.
Los archivos .idx se numeran primero en el orden en el que aparecen en la lista de archivos de índice. Las etiquetas del archivo .cdx estructural (si existe) se numeran en el orden en que se crearon. Por último, se numeran las etiquetas de los archivos .cdx independientes en el orden en que se crearon.
Si nIndexNumber es 0, los registros de la tabla se muestran y se tiene acceso a ellos en su orden físico, pero los archivos de índice permanecen abiertos. ORDER 0 le permite actualizar los archivos de índice abiertos mientras tiene acceso a los registros en su orden físico. ORDER sin argumentos adicionales es idéntico a ORDER 0.
Visual FoxPro generará un mensaje de error si nIndexNumber es mayor que el número de archivos .idx y de etiquetas de archivo .cdx.

ORDER IDXIndexFileName
Especifica un archivo .idx como archivo de índice de control.

ORDER [TAG] TagName [OF CDXFileName]
Especifica una etiqueta (TagName) de un archivo .cdx para que sea la etiqueta de control. El nombre de la etiqueta puede proceder del archivo estructural .cdx o de cualquier archivo .cdx independiente abierto.
Si existen varias etiquetas con el mismo nombre en archivos .cdx independientes abiertos, use OF CDXFileName para especificar el archivo .cdx en el que está la etiqueta.

ASCENDING DESCENDING
Especifica si los registros de la tabla se muestran y se tiene acceso a ellos en orden ascendente o descendente. Los archivos o etiquetas de índice no se modificarán; únicamente cambiará el orden en el que se muestran y se tiene acceso a los registros. Incluya la cláusula ASCENDING o DESCENDING inmediatamente después de la cláusula ORDER.

ADDITIVE
Especifica que los archivos de índice abiertos con anterioridad, excepto un índice compuesto estructural, se dejen abiertos al ejecutar SET INDEX para abrir uno o varios archivos de índice adicionales para una tabla. Sin ADDITIVE, los archivos abiertos con anterioridad se cierran.
Observaciones
Se pueden mostrar los registros de una tabla que tiene uno o varios archivos de índice abiertos, y tener acceso a ellos, en un orden determinado por uno de los archivos de índice. SET INDEX puede abrir archivos de índice tanto sencillos (.idx) como compuestos (.cdx). Si una tabla tiene un archivo .cdx estructural, el archivo se abrirá automáticamente al abrir la tabla.
Un solo archivo .idx (el archivo de índice de control) o una etiqueta de un archivo .cdx (la etiqueta de control) controlan el orden en que se muestran o se tiene acceso a los registros de la tabla. Ciertos comandos (SEEK, por ejemplo) utilizan el archivo o la etiqueta de índice de control para buscar registros.
Si ejecuta SET INDEX TO sin ningún argumento adicional, se cerrarán todos los archivos de índice abiertos (excepto el archivo .cdx estructural) del área de trabajo actual.




SET KEY (Comando)
Especifica el acceso a un intervalo de registros a partir de sus claves de índice.

SET KEY TO [eExpression1 RANGE eExpression2 [, eExpression3]]
[IN cTableAlias nWorkArea]
Parámetros
eExpression1
Permite el acceso a un conjunto de registros con claves de índice idénticas. eExpression1 es un valor de clave de índice simple. Puede tener acceso a todos los registros que tengan claves de índice que coincidan con eExpression1.

RANGE eExpression2 [, eExpression3]
Permite el acceso a un conjunto de registros cuyas claves de índice están incluidas en un intervalo de valores de claves de índice. eExpression2 permite el acceso a los registros cuya clave de índice es igual o mayor que eExpression2. eExpression3 (precedida por una coma) permite el acceso a los registros con claves de índice iguales o mayores que eExpression3. La inclusión de ambas, eExpression2 y eExpression3 (separadas por una coma), permite el acceso a los registros cuyas claves de índice sean iguales o mayores que eExpression2, e iguales o menores que eExpression3.
Por ejemplo, la tabla CLIENTE incluye un campo de caracteres que contiene códigos postales. Si la tabla está indizada por el campo de código postal, puede especificar un intervalo de códigos postales con SET KEY.
En este ejemplo, solamente aparecerán en la ventana Examinar los registros cuyos códigos postales estén en el intervalo de 40000 a 43999:
CLOSE DATABASES
USE customer
SET ORDER TO postalcode
SET KEY TO RANGE '40000', '43999'
BROWSE

IN cTableAlias nWorkArea
Permite tener acceso a un intervalo de registros para una tabla abierta en un área de trabajo específica. cTableAlias especifica el alias del área de trabajo y nWorkArea especifica el número del área de trabajo. Si ninguna tabla tiene el alias especificado, Visual FoxPro mostrará un mensaje de error. Si omite el número y el alias del área de trabajo, SET KEY funcionará en la tabla del área de trabajo seleccionada actualmente.
Observaciones
Use SET KEY para limitar el intervalo de registros a los que puede tener acceso en una tabla. Es necesario que la tabla esté indizada, y que el valor o los valores de clave de índice incluidos sean del mismo tipo de datos que la expresión de índice del archivo de índice principal o que la etiqueta principal.
Ejecute SET KEY TO sin ningún argumento adicional para restaurar el acceso a todos los registros de la tabla.

SET KEYCOMP (Comando)
Controla el desplazamiento con teclas en Visual FoxPro.

SET KEYCOMP TO DOS WINDOWS

Observaciones
SET KEYCOMP determina las pulsaciones de teclas y las combinaciones de pulsaciones de teclas que se utilizan para desplazarse por la interfaz de Visual FoxPro a través del acceso a controles, como botones, cuadros de lista, menús, etc. El efecto de SET KEYCOMP depende del control.
Use SET KEYCOMP cuando desee utilizar pulsaciones de teclas conocidas.

Para desplazarse en Microsoft Windows utilizando las pulsaciones de teclas de MS-DOS, ejecute: SET KEYCOMP TO DOS

Puede especificar la opción DOS o WINDOWS (predeterminada).

Puede especificar un valor inicial de SET KEYCOMP en el archivo de configuración de Visual FoxPro, config.fpw. Por ejemplo, incluir la siguiente línea en el archivo de configuración produce el mismo efecto que SET KEYCOMP TO DOS:
KEYCOMP = DOS

Esta sección describe la forma en que las opciones DOS y WINDOWS influyen en Visual FoxPro.

Botones predeterminados
DOS

El botón predeterminado de un cuadro de diálogo es el que tiene el enfoque; su apariencia es siempre la misma. Se elige presionando CTRL+ENTRAR.

WINDOWS
El botón predeterminado de un cuadro de diálogo puede cambiar a medida que se mueve entre los controles. Puede estar atenuado o tener el enfoque (está rodeado por un borde en negrita) para indicar que es el valor predeterminado actual. Se elige presionando ENTRAR. Al presionar ENTRAR siempre se realiza la acción del botón predeterminado.

Para ver una demostración de cómo cambia el aspecto del botón predeterminado en un cuadro de diálogo, ejecute SET KEYCOMP TO WINDOWS, escoja Abrir en el menú Archivo y presione TAB para ir al cuadro de diálogo Abrir.

Teclas de acceso
DOS
La tecla de acceso para un control siempre es una sola tecla. Si no está en un control que tenga control por teclado (un cuadro combinado o de lista), puede elegirlo presionando la tecla de acceso.

WINDOWS
Una tecla de acceso para un control puede ser una sola tecla o una combinación de teclas. Si el control actual tiene control por teclado (un cuadro combinado o de lista), puede presionar ALT y la tecla de acceso para elegir el control. Para elegir otros controles, puede presionar la tecla de acceso, o ALT y la tecla de acceso.

Cuadros combinados
DOS
Cuando un cuadro combinado tiene el enfoque, puede abrirlo presionando ENTRAR o la BARRA ESPACIADORA. El control por teclado en un cuadro combinado no está disponible hasta que no se abra el cuadro combinado.

WINDOWS
Cuando un cuadro combinado tiene el enfoque, puede abrirlo presionando la BARRA ESPACIADORA, ALT+FLECHA ARRIBA o ALT+FLECHA ABAJO. El control por teclado en un cuadro combinado está disponible cuando dicho cuadro combinado tiene el enfoque y cuando está abierto. Por ejemplo, un cuadro combinado seleccionado contiene una lista de unidades disponibles. Si las unidades A, B y C están disponibles y la unidad B se muestra actualmente, puede elegir la unidad C sin abrir el cuadro combinado presionando C o la tecla FLECHA ABAJO. La unidad C se elige y se avanza hasta el control siguiente.

Botones de opción
DOS
Al presionar la tecla TAB cuando hay un grupo de botones de opción seleccionado, se moverá entre los botones de opción.

WINDOWS
Si presiona la tecla TAB cuando un grupo de botones de opción está seleccionado, se moverá de los botones de opción al control siguiente. Para moverse entre los botones de un conjunto de botones de opción, presione las teclas FLECHA ARRIBA y FLECHA ABAJO.

Ventana Examinar
DOS
Un campo no se selecciona al entrar en él.

WINDOWS
Un campo se selecciona automáticamente al entrar en él.




SET LIBRARY (Comando)
Abre un archivo de biblioteca API (interfaz de programación de aplicaciones) externa.

SET LIBRARY TO [FileName [ADDITIVE]]

Parámetros
FileName
Especifica el nombre del archivo de la biblioteca API o del archivo de procedimiento que desee abrir.
Visual FoxPro supone una extensión .fll para las bibliotecas. Si una biblioteca tiene la extensión .fll, no necesita incluir la extensión con el nombre del archivo. Si una biblioteca tiene una extensión distinta de .fll, debe incluir la extensión con el nombre del archivo.

Precaución Cuando utilice SET LIBRARY, no olvide que:
· No puede usar bibliotecas de API creadas para una plataforma en otra plataforma. Por ejemplo, las bibliotecas creadas para FoxPro para MS-DOS no pueden usarse en Visual FoxPro; las bibliotecas creadas para Visual FoxPro no pueden usarse en FoxPro para MS-DOS.
· No puede usar bibliotecas de API creadas para una versión en otra versión. Por ejemplo, no puede usar bibliotecas creadas para FoxPro versión 2.6 en Visual FoxPro. Es necesario volver a compilar y vincular.

Visual FoxPro supone que los archivos de procedimiento tienen la extensión .prg.
Cuando ejecute un procedimiento con DO ProcedureName, Visual FoxPro buscará el procedimiento en los siguientes archivos y por este orden:
· El archivo que contiene DO ProcedureName.
· Un archivo de procedimiento abierto con SET PROCEDURE (si hay alguno definido).
· Los programas de la cadena de ejecución. Visual FoxPro busca en los archivos de programa comenzando por el programa ejecutado más recientemente y continuando hacia atrás hasta llegar al primer programa ejecutado.
· Un archivo de procedimiento abierto con SET LIBRARY (si hay alguno definido).
· Un archivo de programa independiente. Si Visual FoxPro encuentra un archivo de programa con el mismo nombre que el archivo especificado con DO, ejecutará este programa. Si no encuentra ningún nombre de archivo de programa que coincida, Visual FoxPro mostrará un mensaje de error.

ADDITIVE

Abre bibliotecas API adicionales. Incluya ADDITIVE después del nombre de archivo en comandos SET LIBRARY sucesivos.
Visual FoxPro pasa por alto ADDITIVE cuando se utiliza SET LIBRARY para abrir un archivo de procedimiento.

Observaciones
Utilice SET LIBRARY para abrir bibliotecas externas de Interfaz de programación de aplicaciones (API) o un archivo de procedimiento.
Las bibliotecas de rutinas API amplían las posibilidades del lenguaje Visual FoxPro y la interfaz de usuario. Una vez que se abre una biblioteca de rutinas API externas, puede utilizar las funciones API como si fueran funciones de Visual FoxPro. Use DISPLAY STATUS o LIST STATUS para mostrar las funciones disponibles en la biblioteca.
Puede utilizar las bibliotecas API existentes o crear las suyas propias.
En Visual FoxPro, el procedimiento más recomendable para registrar funciones en bibliotecas compartidas es utilizar el comando
DECLARE - DLL.
Para eliminar de la memoria todas las bibliotecas API, use SET LIBRARY TO sin incluir FileName ni ADDITIVE. Para eliminar una sola biblioteca de la memoria, use RELEASE LIBRARY LibraryName.
Si especifica un archivo de procedimiento, los procedimientos incluidos en ese archivo estarán disponibles para todos los programas, y también lo estarán de forma interactiva a través de la ventana Comandos.

Nota: La capacidad de Visual FoxPro para abrir un archivo de procedimientos con SET LIBRARY proporciona compatibilidad con dBASE IV. El uso de SET LIBRARY para abrir un archivo de procedimiento cerrará todas las bibliotecas API abiertas. Al utilizar SET LIBRARY para abrir bibliotecas API se cerrará un archivo de procedimiento abierto con SET LIBRARY. Use SET PROCEDURE para abrir un archivo de procedimiento y evitar que se cierren las bibliotecas API.




SET LOCK (Comando)
Activa o desactiva el bloqueo automático de archivos con ciertos comandos.

SET LOCK ON OFF

Parámetros
ON
Especifica que los comandos antes indicados bloquean automáticamente la tabla cuando se ejecutan. De esta forma se proporciona acceso de sólo lectura a otros usuarios de la red y se garantiza el uso de los datos más actuales.

OFF
(Predeterminado) Permite el acceso compartido a tablas con los comandos que se indican a continuación. Use SET LOCK OFF si no necesita la información más actualizada de una tabla.
Observaciones
Visual FoxPro no bloqueará un archivo cuando ejecute comandos que necesiten acceso de sólo lectura a la tabla. Entre estos comandos se incluyen los siguientes:

Comandos
AVERAGE
JOIN (ambos archivos)
CALCULATE
LIST
COPY TO
LABEL
COPY TO ARRAY
REPORT
COUNT
SORT
DISPLAY (con alcance)
SUM
INDEX
TOTAL

Al ejecutarse, estos comandos no cambian el contenido de una tabla y el acceso a la tabla está disponible para otros usuarios de la red. Es decir, se puede cambiar la tabla mientras se ejecuta uno de estos comandos. Por ejemplo, puede comenzar a imprimir un informe utilizando REPORT antes de que otro usuario cambie un registro incluido en el informe. Su informe contendrá información obsoleta.
SET LOCK tiene como alcance la sesión actual de datos.




SET LOGERRORS (Comando)
Determina si Visual FoxPro envía o no los mensajes de error de compilación a un archivo de texto.
SET LOGERRORS ON OFF

Parámetros
ON
(Predeterminado) Especifica que se desea crear un archivo de registro de mensajes de error de compilación con el mismo nombre que el programa compilado y la extensión .err. Si ya existe un archivo de registro con el mismo nombre, se sobrescribirá.

OFF
Especifica que no se desea crear ningún archivo de registro de mensajes de error de compilación durante la compilación de un programa.

Observaciones
Use SET LOGERRORS para guardar los mensajes de error de compilación en un archivo de texto cuando se compilen los programas.
Si existe un archivo de registro con el mismo nombre que el programa compilado y el programa se compila sin errores, el archivo de registro se eliminará.




SET MACKEY (Comando)
Especifica una tecla o una combinación de teclas que muestra el cuadro de diálogo Definición de tecla de macro.

SET MACKEY TO [KeyLabelName]

Parámetros
KeyLabelName
Especifica la tecla o la combinación de teclas que muestran el cuadro de diálogo Definición de tecla de macro.

Observaciones
Utilice SET MACKEY para cambiar la combinación de teclas predeterminada que sirve para mostrar el cuadro de diálogo Definición de tecla de macro. Elija Macros en el menú Herramientas para abrir este cuadro de diálogo.




SET MARGIN (Comando)
Establece el margen izquierdo de la impresora y afecta a todas las salidas dirigidas a la impresora.

SET MARGIN TO nColumns

Parámetros
nColumns
Especifica el margen izquierdo en columnas. El valor predeterminado es 0 columnas; el máximo es 256.

Observaciones
Si utiliza SET MARGIN para ajustar el margen izquierdo, el valor especificado con SET MARGIN se almacenará en la variable del sistema _PLOFFSET. También puede establecer el margen izquierdo almacenando un valor directamente en _PLOFFSET.
El valor de la variable del sistema _LMARGIN también afecta a la configuración del margen izquierdo.

Nota: El valor del margen izquierdo especificado en SET MARGIN no afecta a los informes creados con el Diseñador de informes y ejecutados con REPORT. A pesar de que _PLOFFSET se ajusta durante la ejecución de un informe creado con el Diseñador de informes, se restablece a su valor original después de que se ejecuta el informe. La configuración “Margen izquierdo” del cuadro de diálogo Configurar página del Diseñador de informes determina el desplazamiento desde el borde izquierdo del papel. Elija Configurar página en el menú Archivo para mostrar el cuadro de diálogo Configurar página cuando se abra el Diseñador de informes.




SET MARK OF (Comando)
Especifica un carácter de marca para los títulos o los elementos de menús, o muestra o quita el carácter de marca.

SET MARK OF MENU MenuBarName1
TO lExpression1-or-SET MARK OF POPUP MenuName1
TO lExpression3-or-SET MARK OF BAR nMenuItemNumber OF MenuName2
TO lExpression4

Parámetros
MENU MenuBarName1

Especifica el nombre de la barra de menús cuyo carácter de marca se especifica, se muestra o se borra.
· TO lExpression1 Muestra o borra el carácter de marca para todos los títulos de menús de la barra de menús. Si la expresión lógica lExpression1 se evalúa como verdadero (.T.), el carácter de marca se mostrará junto a cada título de menú. El carácter de marca se borra de todos los nombres de menú si lExpression1 se evalúa como falso (.F.).

POPUP MenuName1
Especifica el nombre del menú cuyo carácter de marca se especifica, se muestra o se borra.
· TO lExpression3 muestra o borra los caracteres de marca para todos los elementos de menú. Si lExpression3 se evalúa como verdadero (.T.), los caracteres de marca se mostrarán. Si lExpression3 se evalúa como falso (.F.), los caracteres de marca se borrarán.

BAR nMenuItemNumber OF MenuName2
Especifica el número del elemento de menú (y el nombre del menú que lo contiene) cuyo carácter de marca se especifica, se muestra o se borra.
· TO lExpression4 muestra o borra el carácter de marca para el elemento de menú. Si lExpression4 se evalúa como verdadero (.T.), el carácter de marca se mostrará. Si lExpression4 se evalúa como falso (.F.), el carácter de marca se borrará.

Observaciones
No puede especificar un carácter de marca distinto para un título o un elemento de menú. El carácter de marca siempre es una marca de verificación. Sin embargo, puede utilizar SET MARK OF para mostrar o eliminar la marca de verificación de un título o de un elemento de menú.
No puede marcar elementos de menú creados con ninguna de las cláusulas de DEFINE POPUP PROMPT (FIELD, FILES ni STRUCTURE).
Use MRKPAD( ) para determinar si un título de menú muestra un carácter de marca y MRKBAR( ) para determinar si un elemento de menú muestra un carácter de marca.




SET MARK TO (Comando)
Especifica un delimitador que se usará para mostrar expresiones de fecha.

SET MARK TO [cDelimiter]

Parámetros
cDelimiter
Especifica el carácter que desea utilizar como delimitador de fecha.

Observaciones
SET MARK TO especifica el carácter que separa el mes, el día y el año de las fechas que se muestran.
Utilice SET MARK TO sin cDelimiter para restablecer el delimitador en la barra diagonal ( / ) predeterminada.
SET MARK TO tiene como alcance la sesión actual de datos.




SET MEMOWIDTH (Comando)
Especifica el ancho de los campos memo y las expresiones de tipo carácter.

SET MEMOWIDTH TO nColumns

Parámetros
nColumns
Especifica un ancho entre 8 y 8192 columnas. El ancho predeterminado para los resultados es de 50 columnas. Si ejecuta SET COMPATIBLE ON o SET COMPATIBLE DB4, el ancho predeterminado se convertirá en 80 columnas. Si especifica un valor para nColumns mayor que 8192, el ancho se establecerá en 8192.

Observaciones
SET MEMOWIDTH especifica el ancho del resultado enviado a la ventana principal de Microsoft Visual FoxPro o a una ventana definida por el usuario con comandos como ? ??, DISPLAY o LIST. Afecta al ancho de los resultados de los campos memo y las expresiones de tipo carácter que tienen más de 254 caracteres. También afecta a los valores devueltos por las funciones ATCLINE( ), ATLINE( ), MEMLINE( ) y MLINE( ).
Observe que para ? y ?? el ancho mostrado no superará los 256 caracteres.
Si se dirigen los resultados a la ventana principal de Visual FoxPro, el ancho de los resultados será el determinado por la fuente de la ventana principal de Visual FoxPro. Si se dirigen los resultados a una ventana definida por el usuario, el ancho de los resultados será el determinado por la fuente de dicha ventana.
SET MEMOWIDTH tiene como alcance la sesión actual de datos.




SET MESSAGE (Comando)
Define un mensaje para mostrarlo en la ventana principal de Visual FoxPro o en la barra gráfica de estado, o especifica la posición de los mensajes en las barras y comandos de menús definidos por el usuario.

SET MESSAGE TO [cMessageText]-or-SET MESSAGE TO [nRow [LEFT CENTER
RIGHT]]-or-SET MESSAGE WINDOW [WindowName]

Parámetros
TO [cMessageText]
Especifica el mensaje que se va a mostrar.

TO [nRow [LEFT CENTER RIGHT]]
Especifica la colocación de los mensajes en la ventana principal de Visual FoxPro. nRow especifica la fila en la que se muestran los mensajes. Si nRow es 0, no se mostrará ningún mensaje.
LEFT, CENTER y RIGHT especifican la colocación horizontal de los mensajes en la pantalla.
En Visual FoxPro, la ubicación de mensaje especificada con SET MESSAGE se pasa por alto cuando se muestra la barra gráfica de estado.

WINDOW [WindowName]
Especifica la ventana en la que se muestran los mensajes. Para quitar un mensaje de la ventana y mostrarlo en la pantalla, ejecute SET MESSAGE WINDOW.

Observaciones
SET MESSAGE le permite crear un mensaje. También le permite especificar dónde mostrar los mensajes creados con DEFINE BAR, DEFINE MENU, DEFINE PAD o DEFINE POPUP.
De forma predeterminada, los mensajes se colocan en la última línea de la ventana principal de Visual FoxPro si se muestra la barra de estado basada en caracteres. Si se muestra la barra gráfica de estado, los mensajes se colocan en la barra de estado.
La línea SET MESSAGE se restablece en la última línea de la ventana principal de Visual FoxPro siempre que se ejecuta SET DISPLAY.
SET MESSAGE TO sin ningún argumento coloca los mensajes en la barra gráfica de estado.




SET MULTILOCKS (Comando)
Determina si puede bloquear múltiples registros con LOCK( ) o RLOCK( ).

SET MULTILOCKS ON OFF

Parámetros
ON
Le permite intentar bloquear un conjunto de registros. Para intentar bloquear varios registros, incluya una serie de números de registro en LOCK( ) o RLOCK( )..

OFF
(Predeterminado) Le permite intentar bloquear un registro único con LOCK( ) o RLOCK( ).

Observaciones
Cuando se abre una tabla para uso compartido en una red, puede intentar bloquear más de un registro de un archivo de tabla. La configuración de SET MULTILOCKS determina si puede intentar bloquear un registro único o un conjunto de registros. Los registros pueden bloquearse con la función LOCK( ) o RLOCK( ).

Nota: Al conmutar SET MULTILOCKS de ON a OFF o de OFF a ON, se ejecuta implícitamente UNLOCK ALL; es decir, se liberan todos los registros bloqueados de todas las áreas de trabajo.
SET MULTILOCKS alcanza la sesión de datos actual.
Es necesario que MULTILOCKS esté en ON antes de activar el almacenamiento de filas o de tablas en búfer con CURSORSETPROP( ). Si activa la casilla de verificación Activar almacenamiento de datos en búfer en el cuadro de diálogo Propiedades del área de trabajo (que aparece al elegir el botón Propiedades en la ventana Sesión de datos), MULTILOCKS se establecerá automáticamente en ON para la sesión de datos actual. Sin embargo, el hecho de desactivar la casilla de verificación Activar almacenamiento de datos en búfer no establece MULTILOCKS en OFF para la sesión de datos actual.




SET NEAR (Comando)
Determina dónde se coloca el puntero de registro después de que FIND o SEEK busquen un registro y no lo encuentren.

SET NEAR ON OFF

Parámetros
ON
Coloca el puntero de registro en el registro más parecido en caso de que una búsqueda de registro con FIND o SEEK no tenga éxito. Con esta configuración, RECNO( ) devuelve el número del registro con la coincidencia más cercana, FOUND( ) devuelve falso (.F.) y EOF( ) devuelve falso (.F.).

OFF
(Predeterminado) Coloca el puntero de registro al final de la tabla, en caso de que una búsqueda de registro mediante FIND o SEEK no tenga éxito. Con esta configuración, RECNO( ) devuelve el número de registros de la tabla más 1, FOUND( ) devuelve falso (.F.) y EOF( ) devuelve verdadero (.T.).

Observaciones
Una búsqueda fracasa cuando ningún registro cumple con el criterio de búsqueda.
Ejecutar RECNO( ) con un argumento de 0 devuelve el número del registro más parecido en caso de que la búsqueda fracase, sin tener en cuenta la configuración de SET NEAR.
SET NEAR tiene como alcance la sesión actual de datos.




SET NOCPTRANS (Comando)
Impide la conversión a otra página de códigos distinta para los campos seleccionados de una tabla abierta.

SET NOCPTRANS TO [FieldName1 [, FieldName2 ...]]

Parámetros
TO [FieldName1 [, FieldName2 ...]]
Especifica los campos que no se deberían convertir a otra página de códigos.
Ejecute SET NOCPTRANS TO sin ningún conjunto de campos para volver a la conversión predeterminada (establecida por el elemento de configuración CODEPAGE) para todos los campos de tipo carácter y memo de una tabla. Use SET("NOCPTRANS") para devolver los campos especificados en el último comando SET NOCPTRANS ejecutado. Use la función CHR( ) para asegurarse de que determinados caracteres no se convierten.

Observaciones
Puesto que puede configurar Microsoft Visual FoxPro para que convierta automáticamente los campos de tipo carácter y memo a otras páginas de códigos, el comando SET NOCPTRANS está disponible para impedir la conversión automática de campos que contengan datos binarios. Por ejemplo, un campo memo puede contener un documento de Microsoft Word. Al obtener acceso al documento de Word, sería conveniente que estuviera en el formato original no convertido. Use SET NOCPTRANS para especificar que el campo memo no se convierta.
No necesita utilizar SET NOCPTRANS para tener acceso a datos binarios si el campo memo o de caracteres que contiene los datos binarios no se ha convertido. Puede asegurarse de que los campos memo o de caracteres no se convierten, omitiendo el elemento de configuración CODEPAGE del archivo de configuración de Visual FoxPro.




SET NOTIFY (Comando)
Activa o desactiva la presentación de algunos mensajes del sistema.

SET NOTIFY ON OFF

Parámetros
ON
(Predeterminado) Activa la presentación de determinados mensajes del sistema.

OFF
Desactiva la presentación de determinados mensajes del sistema.
Observaciones
Ejemplos de mensajes del sistema en los que influye SET NOTIFY son:
· "La expresión es válida" en el cuadro de diálogo Generador de expresiones.
· "Do Cancelado", que aparece cuando se cancela la ejecución del programa.

Los mensajes del sistema se muestran en la barra gráfica de estado (no en la basada en caracteres), ubicada en la parte inferior de la ventana principal de Visual FoxPro.




SET NULL (Comando)
Determina si los comandos ALTER TABLE, CREATE TABLE e INSERT - SQL admiten valores NULL.

SET NULL ON OFF

Parámetros
ON
Especifica que todas las columnas de una tabla creadas con ALTER TABLE y CREATE TABLE permiten valores NULL. Es posible anular el soporte para valores NULL para columnas de la tabla incluyendo la cláusula NOT NULL en las definiciones de columnas.
Además, especifica que INSERT - SQL intentará insertar valores NULL en cualquier columna que no esté incluida en la cláusula INSERT - SQL VALUE. INSERT - SQL sólo podrá insertar correctamente valores NULL en columnas que admitan valores NULL.

Nota: Si agrega soporte para valores NULL en una o varias columnas de una tabla, el límite de número de columnas para dicha tabla disminuirá de 255 a 254.

OFF
(Predeterminado) Especifica que todas las columnas de una tabla creada con ALTER TABLE y CREATE TABLE no admiten valores NULL. Es posible designar soporte de valores NULL para columnas en ALTER TABLE y CREATE TABLE incluyendo la cláusula NULL en las definiciones de columnas.
Asimismo, especifica que INSERT - SQL insertará valores en blanco en las columnas no incluidas en la cláusula INSERT - SQL VALUE.

Observaciones
SET NULL sólo afecta al soporte para valores NULL de ALTER TABLE, CREATE TABLE e INSERT - SQL. Otros comandos no se ven afectados por SET NULL. SET NULL tiene como alcance la sesión actual de datos.

Ejemplo
El ejemplo siguiente demuestra cómo afecta SET NULL al soporte de valores NULL. La primera tabla, employee, se crea con SET NULL ON, por lo que sus campos aceptan valores NULL. Se usa REPLACE para situar un valor NULL en el campo cLastName. La segunda tabla, staff, se crea con SET NULL OFF, por lo que sus campos no aceptan valores NULL. Se usa REPLACE para colocar cero en el campo cLastName.

CLOSE DATABASES
SET NULL ON && Fields will support null values
CREATE TABLE employee (cLastName C(20), ySalary Y(12,2))
APPEND BLANK && Add a new blank record
REPLACE cLastName WITH .NULL. && cLastName supports null values

SET NULL OFF && Fields will not support null values
CREATE TABLE staff (cLastName C(20), ySalary Y(12,2))
APPEND BLANK && Add a new blank record
REPLACE cLastName WITH 0 && Doesn't support null values




SET NULLDISPLAY (Comando)
Especifica el texto que aparecerá para valores NULL.

SET NULLDISPLAY TO [cNullText]

Parámetros
cNullText
Especifica el texto que aparecerá en pantalla para valores nulos. Si se omite cNullText, se restaurará y se mostrará el texto predeterminado .NULL. para los valores NULL.

Observaciones
De forma predeterminada, Visual FoxPro mostrará .NULL. para valores NULL en objetos, ventanas Examinar, resultados DISPLAY, resultados LIST, etc. Utilice SET NULLDISPLAY para cambiar el texto predeterminado de valor NULL por una cadena de caracteres distinta. SET NULLDISPLAY cambia el texto predeterminado de valores NULL para todos los objetos para los que la propiedad NullDisplay es la cadena vacía.
Utilice la propiedad NullDisplay para cambiar el texto predeterminado de valor NULL por una cadena de caracteres distinta para un objeto individual.




SET ODOMETER (Comando)
Determina el intervalo de informe del contador de registros en los comandos que procesan registros.

SET ODOMETER TO [nRecords]

Parámetros
TO [nRecords]
Especifica el intervalo de informe en número de registros. El valor de nRecords puede variar de 1 a 32.767 registros. El valor predeterminado es 100 registros.

Observaciones
Utilice SET ODOMETER para cambiar el intervalo de comandos en los que se muestra información del número de registros procesados.
Por ejemplo, COPY TO muestra el número de registros que se están copiando a un archivo nuevo mientras se ejecuta el comando. El contador de registros puede desactivarse ejecutando SET TALK OFF.


SET OLEOBJECT (Comando)
Especifica si Visual FoxPro busca en el Registro de OLE cuando no se puede encontrar un objeto.

SET OLEOBJECT ON OFF

Parámetros
ON
(Predeterminado) Especifica que Visual FoxPro busca en el Registro de OLE cuando no se puede encontrar un objeto.

OFF
Especifica que Visual FoxPro no busca en el Registro de OLE cuando no se puede encontrar un objeto.

Observaciones
Cuando se crea un objeto con CREATEOBJECT( ) o GETOBJECT( ), Visual FoxPro busca el objeto en las siguientes ubicaciones y en este orden:
1. Las clases básicas de Visual FoxPro.
2. Las definiciones de clases en memoria, en el orden en que se cargan.
3. Las definiciones de clases en el programa actual.
4. Las definiciones de clases en las bibliotecas de clase .vcx abiertas con SET CLASSLIB.
5. Las definiciones de clases en archivos de procedimiento abiertos con SET PROCEDURE.
6. Definiciones de clase en la cadena de ejecución del programa Visual FoxPro.
7. El Registro de OLE.

Cuando Visual FoxPro busca un objeto, se busca en el Registro de OLE en último lugar. Visual FoxPro carga el soporte OLE antes de buscar en el Registro de OLE, lo que aumenta la cantidad de memoria necesaria para Visual FoxPro y reduce la memoria disponible para otras aplicaciones.
Si está desarrollando una aplicación que no necesita soporte OLE, ejecute SET OLEOBJECT OFF para impedir que Visual FoxPro busque en el Registro de OLE cuando no se encuentre un objeto.
SET OLEOBJECT no afecta a los objetos OLE de los campos Forms o General. Visual FoxPro siempre carga el soporte OLE cuando se abre un Form que contiene un objeto OLE para modificarlo o instanciarlo, o cuando se abre una tabla con un campo general.
Puesto que GETOBJECT( ) activa un objeto OLE, Visual FoxPro genera un error cuando se ejecuta GETOBJECT( ) y SET OLEOBJECT está en OFF.




SET OPTIMIZE (Comando)
Activa o desactiva la optimización Rushmore.

SET OPTIMIZE ON OFF

Parámetros
ON
(Predeterminado) Activa la optimización Rushmore.

OFF
Desactiva la optimización Rushmore.

Observaciones
Visual FoxPro utiliza una tecnología llamada Rushmore para optimizar la recuperación de datos. Los comandos de tabla que admiten una cláusula FOR utilizan la tecnología Rushmore para mejorar su rendimiento. Cuando se ejecuta un comando que es optimizable, Rushmore determina los registros que coinciden con el criterio FOR. El comando se ejecuta en los registros de la tabla que coinciden con el conjunto de registros Rushmore.
En raras ocasiones, es conveniente desactivar la optimización Rushmore. Si un comando que se beneficia de la optimización Rushmore modifica las claves de índice de una consulta, el conjunto de registros Rushmore puede quedar obsoleto. Puede desactivar la optimización Rushmore para garantizar que tiene la información más reciente en la tabla.
Puede utilizar SET OPTIMIZE para activar o desactivar globalmente la tecnología Rushmore. Todos los comandos que utilizan Rushmore tienen una cláusula NOOPTIMIZE que se puede incluir para desactivar la optimización Rushmore para el comando.
Estos son los comandos cuyo rendimiento se optimiza con Rushmore:

Comandos
AVERAGE
INDEX
BLANK
LABEL
BROWSE
LIST
CALCULATE
LOCATE
CHANGE
RECALL
COPY TO
REPLACE
COPY TO ARRAY
REPLACE FROM ARRAY
COUNT
REPORT
DELETE
SCAN
DISPLAY
SORT
EDIT
SUM
EXPORT
TOTAL


SET ORDER (Comando)
Designa un archivo o una etiqueta de índice de control para una tabla.

SET ORDER TO [nIndexNumber IDXIndexFileName [TAG] TagName
[OF CDXFileName] [IN nWorkArea cTableAlias]
[ASCENDING DESCENDING]]

Parámetros
nIndexNumber
Especifica el número del archivo o la etiqueta de índice de control. nIndexNumber se refiere a los archivos de índice tal como aparecen en USE o en SET INDEX. Los archivos .idx abiertos se numeran primero en el orden en que aparecen en USE o SET INDEX. Las etiquetas en el archivo estructural .cdx (si existe) son entonces numeradas en el orden en el que han sido creadas. Finalmente, las etiquetas de cualquier archivo independiente .cdx abierto se numeran en el orden en el que han sido creadas.
El ejemplo siguiente ilustra cómo se numeran los distintos tipos de archivos y etiquetas de índice. (Los nombres de archivo son simplemente ilustrativos y no existen necesariamente.) Primero se abre una tabla llamada video.dbf con tres índices (title.idx, costs.cdx y rating.idx) en la primera área de trabajo con este comando:
USE video INDEX title.idx, costs.cdx, rating.idx IN 1

La tabla video tiene un archivo estructural de índice compuesto (video.cdx) con dos etiquetas, NUMBERSOLD y YEARSOLD. El archivo .cdx estructural se abre automáticamente al abrirse video.

Puesto que primero se numeran los archivos .idx, ejecute SET ORDER TO 1 para que title.idx sea el índice de control y SET ORDER TO 2 para que rating.idx sea el índice de control:
SET ORDER TO 1
Controlling index: C:\FOX30\TITLE.IDX
SET ORDER TO 2
Controlling index: C:\FOX30\RATING.IDX

Después se numeran las etiquetas de video.cdx:
SET ORDER TO 3
Controlling index: C:\FOX30\VIDEO.CDX Tag: NUMBERSOLD
SET ORDER TO 4
Controlling index: C:\FOX30\VIDEO.CDX Tag: YEARSOLD

Finalmente se numeran las etiquetas del archivo independiente, costs.cdx:
SET ORDER TO 5
Controlling index: C:\FOX30\COSTS.CDX Tag: RENTALCOST
SET ORDER TO 6
Controlling index: C:\FOX30\COSTS.CDX Tag: BUYCOST

nIndexNumber también puede ser 0. Si ejecuta SET ORDER TO 0, todos los archivos de índice permanecen abiertos y se actualizan cuando se agregan, eliminan o modifican registros. Sin embargo, los registros de la tabla se muestran y se obtiene acceso a ellos en el orden del número de registro, no en el orden indizado. Ejecutar SET ORDER TO sin argumentos adicionales es lo mismo que ejecutar SET ORDER TO 0.
Si nIndexNumber es mayor que el número de archivos .idx y etiquetas de archivos .cdx, Visual FoxPro generará un mensaje de error.

IDXIndexFileName
Especifica un archivo .idx como archivo de índice de control.

[TAG] TagName [OF CDXFileName]
Especifica una etiqueta de un archivo .cdx como la etiqueta de control. El nombre de etiqueta puede pertenecer a un archivo .cdx estructural o a cualquier archivo .cdx independiente abierto.
Si existen nombres de etiqueta idénticos en archivos .cdx independientes abiertos, use OF CDXFileName para especificar el archivo .cdx que contiene la etiqueta.

Nota: El archivo .idx tiene prioridad si existen nombres de etiqueta y un archivo .idx duplicado.

IN nWorkArea cTableAlias
Designa un archivo o una etiqueta de índice de control para una tabla abierta en un área de trabajo distinta del área de trabajo seleccionada actualmente. nWorkArea especifica el número del área de trabajo y cTableAlias especifica el alias para la tabla.

ASCENDING / DESCENDING
Muestra y permite tener acceso a los registros de la tabla en orden ascendente o descendente. Incluir ASCENDING o DESCENDING no cambia de ninguna forma el archivo o la etiqueta de índice.

Observaciones
Una tabla puede tener abiertos simultáneamente varios archivos de índice. No obstante, solamente un archivo de índice sencillo (.idx) (el archivo de índice de control) o una etiqueta de un archivo de índice compuesto (.cdx) (la etiqueta de control) determinan el orden en que se muestran o se obtiene acceso a los registros de una tabla. SET ORDER le permite designar el archivo o la etiqueta de control. Ciertos comandos (SEEK, por ejemplo) utilizan el archivo o la etiqueta de control de índice para buscar registros.
Puede abrir archivos de índice con una tabla si incluye la cláusula INDEX en USE. Si una tabla tiene un archivo .cdx compuesto estructural asociado, éste se abrirá automáticamente con la tabla. Después de que se abra la tabla, puede abrir o cerrar los archivos de índice de la tabla utilizando SET INDEX.
De forma predeterminada, SET ORDER designa el índice de control o la etiqueta de control para la tabla abierta en el área de trabajo seleccionada actualmente.




SET PALETTE (Comando)
Especifica si se utiliza o no la paleta de colores predeterminada de Visual FoxPro.

SET PALETTE ON OFF

Parámetros
ON
(Predeterminado) Restaura la paleta de colores predeterminada de Visual FoxPro.

OFF
Sustituye la paleta de colores predeterminada de Visual FoxPro por paletas de colores de gráficos .bmp y de objetos OLE.

Observaciones
Los gráficos .bmp y los objetos OLE pueden contener paletas de colores que determinan su apariencia cuando se muestran en la pantalla. La paleta de colores del primer gráfico u objeto mostrado se utiliza para todos los demás. Puesto que se emplea una sola paleta de colores para todos los gráficos y objetos, los colores de algunos de ellos pueden modificarse de manera inesperada.
La paleta de colores predeterminada de Visual FoxPro está diseñada para mejorar la apariencia de presentación de varios gráficos .bmp y objetos OLE.




SET PATH (Comando)
Especifica una ruta de acceso para buscar archivos.

SET PATH TO [Path]

Parámetros
TO [Path]
Especifica los directorios en los que desea que busque Visual FoxPro. Use comas o punto y coma para separar los directorios.

Nota: Visual FoxPro no reconocerá correctamente un nombre de ruta de acceso si el nombre del disco o del directorio contiene un signo de admiración (!).
En todas las plataformas FoxPro, las funciones que devuelven información acerca de las rutas de acceso, como CURDIR( ), DBF( ) y SYS(2003), utilizan convenciones de denominación de rutas de acceso de MS-DOS en los valores que devuelven.

Observaciones
Ejecute SET PATH TO sin Path para restaurar la ruta de acceso al directorio predeterminado. Use SET DEFAULT para especificar el directorio predeterminado y CURDIR( ) para devolver el directorio predeterminado actual.
SET PATH no tiene como alcance la sesión de datos actual; los cambios realizados en la ruta de acceso predeterminada con el comando SET PATH afectarán a todas las sesiones de datos.




SET PDSETUP (Comando)
Carga la configuración de un controlador de impresora o borra la configuración del controlador de impresora actual.

SET PDSETUP TO [[cPrinterDriverSetup [, Parameter1[, Parameter2 ...]]]
[WITH Parameter3 [, Parameter4 ...]]]

Parámetros
cPrinterDriverSetup

Especifica el nombre de la configuración del controlador de impresora que se va a cargar.
Al cargar una configuración del controlador de impresora, el nombre de la configuración se almacena en la variable del sistema _PDSETUP y puede crearse una matriz de variables especial: _PDPARMS. (_PDPARMS se explica con detalle en la cláusula WITH de este tema).
Si el nombre del controlador de impresora especificado con cPrinterDriverSetup no existe en su archivo de recursos, se ejecutará la aplicación de configuración del controlador de impresora actual para que pueda crear una configuración con este nombre. Si la aplicación de configuración del controlador de impresora actual es Genpd.app, aparecerá el cuadro de diálogo Edición de configuración de impresora para que pueda crear la configuración.
Si el nombre comienza con un guión (-), no se ejecutará el programa _GENPD y el nombre que sigue al guión se almacenará en _PDSETUP.
Si ejecuta SET PDSETUP TO sin cPrinterDriverSetup, la configuración actual del controlador de impresora se borrará, se almacenará la cadena vacía en _PDSETUP y se borrará de la memora la matriz _PDPARMS.

Parameter1 [, Parameter2 ...]
Especifica cualquier número de parámetros opcionales. Estos parámetros se transfieren a la aplicación de interfaz de configuración de impresora y pueden ser de cualquier tipo (carácter, numérico, lógico, etc.). La primera línea de la aplicación de interfaz de configuración de impresora debe ser una instrucción LPARAMETERS o PARAMETERS para aceptar los parámetros transferidos desde SET PDSETUP.
Si utiliza Genpd.app, no incluya estos parámetros opcionales. Genpd.app no acepta parámetros pasados desde SET PDSETUP; si se incluyen, se generará un error.

WITH Parameter3 [, Parameter4 ...]
Crea la matriz especial de impresora _PDPARMS. Cada parámetro que especifique con Parameter3, Parameter4, etc. se convierte en un elemento de _PDPARMS. El primer parámetro (Parameter3) se almacena en el primer elemento de _PDPARMS, el segundo parámetro (Parameter4) se almacena en el segundo elemento y así sucesivamente. Estos parámetros pueden ser de cualquier tipo (carácter, numérico, lógico, etc.).
Si está utilizando Genpd.app, la aplicación sobrescribirá todos los parámetros que incluya.

Observaciones
En Visual FoxPro y en FoxPro para Windows, se usa una configuración de controlador de impresora cuando se imprimen informes basados en caracteres creados en FoxPro para MS-DOS.
Una configuración de controlador de impresora es una combinación de parámetros de configuración que incluye el programa controlador de impresora e información de impresión, como la orientación de página, la fuente, tamaño y estilo predeterminados, los márgenes, etc. Las configuraciones de controlador de impresora se almacenan en su archivo de recursos de FoxPro para MS-DOS, Foxuser.dbf, y pueden crearse de forma interactiva y asignárseles un nombre en el cuadro de diálogo Edición de configuración de impresora.
Una configuración de controlador de impresora también puede cargarse o eliminarse con la variable del sistema _PDSETUP.
Cuando ejecuta SET PDSETUPT, se ejecuta la aplicación de la interfaz de configuración de impresora actual. A la aplicación de interfaz se le transfiere el nombre de la configuración del controlador de impresora incluida en SET PDSETUP. También se puede especificar la aplicación de interfaz con la variable de sistema _GENPD. La aplicación de interfaz predeterminada es Genpd.app, la aplicación de configuración de impresora de FoxPro para MS-DOS.




SET POINT (Comando)
Determina el carácter decimal que se utilizará al mostrar las expresiones numéricas y de moneda.

SET POINT TO [cDecimalPointCharacter]

Parámetros
cDecimalPointCharacter
Especifica el carácter que desea utilizar como signo decimal.

Observaciones
Utilice SET POINT para cambiar el separador de decimales a partir del predeterminado, que es un punto (.). Ejecute SET POINT TO sin cDecimalPointCharacter para restablecer el signo decimal en un punto. A pesar de que puede cambiar el signo decimal que se muestra por un carácter diferente, debe utilizar el punto como carácter decimal en los cálculos.
SET POINT tiene como alcance la sesión actual de datos.

Ejemplo
gnX = 1.25
gcNewPoint = '_'
SET POINT TO gcNewPoint
? gnX
SET POINT TO && Reset the decimal point to a period (.)
? gnX


SET PRINTER (Comando)
Activa o desactiva el resultado a la impresora, o dirige el resultado hacia un archivo, un puerto o una impresora de red.

SET PRINTER ON [PROMPT] OFF
–O bien–
SET PRINTER FONT cFontName [, nFontSize]
[STYLE cFontStyle]-or-SET PRINTER TO [FileName [ADDITIVE] PortName]
–O bien–
SET PRINTER TO [DEFAULT NAME WindowsPrinterName]
–O bien–
SET PRINTER TO NAME \\ServerName\PrinterName

Parámetros
ON [PROMPT]
Activa el envío del resultado a la impresora. El resultado con formato @ ... SAY no se dirige a la impresora cuando SET PRINTER está en ON. Utilice SET DEVICE TO PRINTER para dirigir el resultado de @ ... SAY a la impresora.
Si desea que se muestre un cuadro de diálogo antes de que empiece la impresión, incluya PROMPT. En este cuadro de diálogo puede modificar la configuración de la impresora. El controlador de impresora instalado actualmente determina los valores de la impresora que puede modificar.

OFF
(Predeterminado) Desactiva la salida a la impresora.

FONT cFontName [, cFontSize]
Especifica la fuente predeterminada para la salida de impresora. cFontName especifica el nombre de la fuente y cFontSize especifica su tamaño en puntos. Por ejemplo, el comando siguiente especifica la fuente Courier de 16 puntos como fuente predeterminada para la impresora:
SET PRINTER FONT 'Courier', 16
Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares.

STYLE cFontStyle
Especifica un estilo de fuente predeterminado para la salida a la impresora. Si omite la cláusula STYLE, se utilizará el estilo de fuente Normal.
Si el estilo de fuente especificado no está disponible, se sustituye por otro de características similares.

Éstos son los estilos de fuente que puede especificar con cFontStyle:

Carácter Estilo de la fuente
B Negrita
I Cursiva
N Normal
O Contorno
Q Opaco
S Sombra
– Tachado
T Transparente
U Subrayado

Puede incluir más de un carácter para especificar una combinación de estilos de fuente. Por ejemplo, el comando siguiente específica negrita cursiva:
SET PRINTER FONT 'Courier', 16 STYLE 'BI'

TO [FileName [ADDITIVE] PortName]
Especifica el archivo o puerto al que se dirige el resultado.
En Visual FoxPro, utilice SET PRINTER TO NAME en vez de especificar una impresora.
FileName especifica un nombre de archivo al que se dirige el resultado. Si incluye ADDITIVE, el resultado se anexará al contenido actual del archivo. Si omite ADDITIVE, se sobrescribirá el contenido existente del archivo.
PortName envía el resultado a una impresora local distinta.

TO [DEFAULT NAME WindowsPrinterName]
Envía la salida de impresora a la impresora predeterminada de Windows o a una impresora de Windows específica. Los nombres de las impresoras de Windows están almacenados en win.ini.
Si desea determinar los nombres de las impresoras instaladas actualmente, utilice GETPRINTER( ) o APRINTERS( ). Por ejemplo, el siguiente comando mostrará el cuadro de diálogo de Windows Configurar impresora y hará que se dirija la salida de impresión a la impresora seleccionada:
SET PRINTER TO NAME GETPRINTER( )

TO NAME \\ServerName\PrinterName
Sólo se admite en Windows NT 4.0 o en versiones posteriores. Dirige la salida de la impresora a una impresora de red.
ServerName es el nombre de red asignado a su servidor de impresión. El administrador de la red es quien asigna este nombre, que debe ser exclusivo.
PrinterName es un nombre asignado a la impresora, también por el administrador de la red.

Observaciones
Use SET PRINTER TO con los argumentos especificados para dirigir la salida a un archivo, a un puerto de una impresora local distinta o a una impresora de red.
Use SET PRINTER TO sin ningún argumento para restablecer la salida a la utilidad de impresión PRN predeterminada de MS-DOS.
Al dirigir la salida a una impresora de red, ésta se imprime o se incluye en una cola de impresión hasta que se ejecuta un nuevo comando SET PRINTER. Para obtener información adicional sobre la impresión en red, consulte la documentación de la red.

Nota: Este comando no funciona en Modo de servidor desatendido.