Está en la página 1de 100

FUNCIONES, MTODOS Y COMANDOS DE VISUAL FOXPRO

Guia Prctica
2.004

ACOPY( ) (Funcin)
Copia elementos de una matriz a otra. Sintaxis ACOPY(NombreMatrizOrigen, NombreMatrizDestino [, nPrimerElementoOrigen [, nNmeroElementos [, nPrimerElementoDestino ]]]) CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre la tabla customer SELECT DISTINCT company ; FROM customer ; ORDER BY company ; WHERE country = 'Alemania'; INTO ARRAY gaCompanies = ACOPY(gaCompanies, gaCompaniesTemp) && Realiza una copia de la matriz CLEAR DISPLAY MEMORY LIKE gaCompaniesTemp

ALEN( ) (Funcin)
Devuelve el nmero de elementos, filas o columnas de una matriz. Sintaxis ALEN(NombreMatriz [, nAtributoMatriz]) Tipos devueltos Numrico Argumentos NombreMatriz Especifica el nombre de la matriz. Si incluye nicamente el nombre de la matriz, ALEN( ) devolver el nmero de elementos de la matriz. nAtributoMatriz Determina si ALEN( ) devuelve el nmero de elementos, filas o columnas de la matriz de acuerdo con los siguientes valores de nAtributoMatriz: 0 1 2 Especifica que se devuelva el nmero de elementos de la matriz. Omitir nAtributoMatriz es idntico a especificar 0. Especifica que se devuelva el nmero de filas de la matriz. Especifica que se devuelva el nmero de columnas de la matriz. Si la matriz es unidimensional, ALEN( ) devolver 0 (ninguna columna).

ALLTRIM( ) (Funcin)
Elimina los espacios en blanco iniciales y finales de la expresin de caracteres especificada y devuelve la expresin recortada como una cadena de caracteres. Sintaxis ALLTRIM(cExpresin) Tipos devueltos Character Argumentos

cExpresin Especifica la expresin de caracteres de la que se eliminan los espacios en blanco iniciales y finales. Comentarios ALLTRIM( ) se puede utilizar para asegurar que los espacios en blanco se eliminan de los datos introducidos por un usuario.

APPEND (Comando)
Agrega uno o ms registros nuevos al final de una tabla. Sintaxis APPEND [BLANK] [IN nreaTrabajo | cAliasTabla] [NOMENU] Argumentos BLANK Agrega un registro en blanco al final de la tabla activa. Visual FoxPro no abre ninguna ventana de edicin cuando usted ejecuta APPEND BLANK. Es posible editar los nuevos registros con BROWSE, CHANGE o EDIT. IN nreaTrabajo Especifica el rea de trabajo de la tabla a la que se aade el nuevo registro. IN cAliasTabla Especifica el alias de la tabla a la que se aade el nuevo registro. Si omite nreaTrabajo y cAliasTabla, se aadir un nuevo registro a la tabla en el rea de trabajo seleccionada actualmente. Si ejecuta APPEND, se agregar un registro en blanco a la tabla especificada mediante nreaTrabajo o cAliasTabla y la tabla se seleccionar automticamente. Si emite APPEND BLANK, se agregar un registro en blanco a la tabla especificada con nreaTrabajo o cAliasTabla y la tabla no se seleccionar. NOMENU Especifica que se eliminar el ttulo de men Tabla de la barra de mens del sistema, lo que impide cambios en el formato de la ventana de edicin. Comentarios El cuadro de dilogo Abrir aparece cuando ejecuta APPEND o APPEND BLANK y no hay una tabla abierta en el rea de trabajo activa. Elija una tabla para aadir registros. APPEND abre una ventana de edicin para que se introduzcan datos en uno o varios registros nuevos. Cuando agregue un nuevo registro, Visual FoxPro actualizar cualquier ndice que haya abierto.

APPEND FROM (Comando)


Agrega registros, desde otro archivo, al final de la tabla seleccionada actualmente. Sintaxis APPEND FROM NombreArchivo | ? [FIELDS ListaCampos] [FOR lExpresin] [[TYPE] [DELIMITED [WITH Delimitador | WITH BLANK | WITH TAB | WITH CHARACTER Delimitador] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | XLS | XL5]] [AS nPginaCdigo] Argumentos 3

NombreArchivo Especifica el nombre del archivo desde el que desea aadir. Si no incluye ninguna extensin de archivo, se asumir una tabla de Visual FoxPro y la extensin predeterminada .DBF. Si desea agregar desde una tabla de Visual FoxPro, se agregarn los registros de la tabla que estn marcados para su eliminacin, independientemente de la configuracin de SET DELETED. ? Muestra el cuadro de dilogo Abrir, desde el que puede elegir una tabla desde la que agregar. FIELDS ListaCampos Especifica a qu campos se van a aadir datos. FOR lExpresin Aade un nuevo registro por cada registro de la tabla actualmente seleccionada para la que lExpresin se evale como verdadera (.T.). Los registros se aaden hasta alcanzar al final de la tabla seleccionada. Si omite FOR, todo el archivo de origen se aade a la tabla seleccionada actualmente. TYPE Especifica el tipo del archivo de origen desde el que se van a aadir datos. Si bien debe especificar un tipo de archivo si el archivo desde el que va a aadir no es una tabla de Visual FoxPro, no necesita incluir la palabra clave TYPE. Puede aadir desde una amplia variedad de tipos de archivos diferentes, incluyendo archivos de texto ASCII delimitados, en los que puede especificar un delimitador de campos. Si el archivo de origen desde el que va a aadir datos no tiene la extensin predeterminada habitual para ese tipo de archivo, el nombre del archivo de origen deber incluir la extensin del archivo. Por ejemplo, las hojas de clculo de Microsoft Excel normalmente tienen una extensin .XLS. Si la hoja de clculo de Excel desde la que va a aadir datos tiene una extensin distinta de la esperada, .XLS, asegrese de especificar la extensin. Nota Cuando aada datos desde una hoja de clculo, los datos de dicha hoja deben estar almacenados en un orden principal de fila, no de columna. Esto permite que los datos aadidos de la hoja de clculo coincidan con la estructura de la tabla. DELIMITED Especifica que el archivo de origen desde el que se agregan los datos hasta la tabla actual de Visual FoxPro es un archivo delimitado. Un archivo delimitado es un archivo de texto ASCII en el que cada registro termina con un retorno de carro y un avance de lnea. De forma predeterminada, se supone que el contenido de los campos est separado entre s mediante comas y que los valores de los campos de caracteres estn delimitados adems por dobles comillas. Por ejemplo: "Smith",9999999,"TELFONO" Para todos los archivos delimitados, la extensin de archivo se supone que es .TXT. Puede importar fechas de archivos delimitados si las fechas tienen el formato de fecha adecuado. El formato de fecha predeterminado es mm/dd/aa. Es opcional incluir la parte de siglo de una fecha. Visual FoxPro importar una fecha, como 12/25/94, que no incluye el siglo y supondr que la fecha corresponde al siglo XX. Los delimitadores de fecha pueden ser cualquier carcter no numrico, excepto el delimitador que separa los campos en el archivo delimitado. Es posible importar fechas en otros formatos si su formato coincide con un formato de fecha disponible en SET DATE. Para importar fechas que no tienen el formato predeterminado, emita SET DATE con el formato de fecha apropiado antes de utilizar APPEND FROM. Para comprobar si un formato de fecha se puede importar correctamente, utilcelo con CTOD( ). Si la fecha es aceptable para CTOD( ), la fecha se importar correctamente. DELIMITED WITH Delimitador Indica que los campos de caracteres estn delimitados entre s por un carcter distinto de la comilla. DELIMITED WITH BLANK blanco en lugar de comas. Especifica archivos que contienen campos separados por espacios en

DELIMITED WITH TAB Especifica archivos que contienen campos separados por tabulaciones, no por comas.

DELIMITED WITH CHARACTER Delimitador Especifica archivos que contienen campos separados por el carcter especificado en Delimitador. Si Delimitador es un punto y coma (el carcter usado en Visual FoxPro para indicar continuacin de lnea de comandos), escriba el punto y coma entre comillas. Tambin puede especificar las palabras clave BLANK y TAB para Delimitador. La clusula WITH Delimitador se puede combinar con la clusula WITH CHARACTER. Por ejemplo, el siguiente comando agrega registros de un archivo de texto con campos de caracteres delimitados con caracteres subrayados y todos los campos delimitados por asteriscos: APPEND FROM mytxt.txt DELIMITED WITH _ ; WITH CHARACTER * DIF Incluya DIF para importar datos desde un archivo .DIF (Formato de Intercambio de Datos). Los vectores (columnas) se convierten en campos en la tabla seleccionada actualmente y las tuplas (filas) se transforman en registros. Se presupone que los nombres de archivos DIF tienen una extensin .DIF. FW2 Incluya FW2 para importar datos desde un archivo creado por Framework II. Se asume que los nombres de archivo FW2 tienen una extensin. MOD Incluya MOD para importar datos desde un archivo Microsoft Multiplan versin 4.01. Microsoft Multiplan versin 4.01 crea archivos MOD, que se supone deben tener una extensin .MOD. PDOX Incluya PDOX para importar datos desde un archivo de base de datos Paradox versin 3.5 o 4.0. Se supone que los nombres de archivo Paradox deben tener una extensin .DB. RPD Incluya RPD para importar datos desde un archivo creado por RapidFile versin 1.2. Se supone que los nombres de archivo RapidFile deben tener una extensin .RPD. SDF Incluya SDF para importar datos desde un archivo de Formato de datos del sistema. Un archivo SDF es un archivo de texto ASCII en el que los registros tienen una longitud fija y terminan con un retorno de carro y un avance de lnea. Los campos no estn delimitados. Se supone que la extensin del archivo SDF debe ser .TXT. SYLK Incluya SYLK para importar datos desde un formato de intercambio SYLK (Vnculo simblico). Los archivos SYLK se usan con Microsoft MultiPlan. Las columnas del archivo SYLK se transforman en campos en la tabla de Visual FoxPro, y las filas se transforman en registros. Los nombres de archivo SYLK no tienen ninguna extensin. WK1 Incluya WK1 para importar datos desde una hoja de clculo Lotus 1-2-3 versin 2.x. Cada columna de la hoja de clculo se transforma en un campo de la tabla, y cada fila de la hoja de clculo se transforma en un registro de la tabla. Se asigna una extensin .WK1 al nombre de archivo de la hoja de clculo creada en Lotus 1-2-3 revisin 2.x. WK3 Incluya WK3 para importar datos desde una hoja de clculo Lotus 1-2-3. Las columnas de la hoja de clculo se transforman en campos de la tabla, y las filas se transforman en registros de la tabla. Se asigna una extensin .WK3 al nombre de archivo de hoja de clculo creada en Lotus 1-2-3 revisin 3.x. WKS Incluya WKS para importar datos desde una hoja de clculo Lotus 1-2-3 revisin 1-A. Las columnas de la hoja de clculo se convierten en campos de la tabla, y las filas se transforman en registros de la tabla. Se asigna una extensin .WKS al nombre de archivo de la hoja de clculo creada en Lotus 1-2-3 revisin 1-A. WR1 Incluya WR1 para importar datos desde una hoja de clculo Lotus Symphony versin 1.1 o 1.2. Las columnas de la hoja de clculo se convierten en campos de la tabla, y las filas se transforman en registros de la tabla. Se asigna la extensin .WR1 al nombre de archivo de hoja de clculo creada en Symphony versiones 1.1 1.2. WRK Incluya WRK para importar datos desde una hoja de clculo Lotus Symphony versin 1.0. Las columnas de la hoja de clculo se transforman en campos de la tabla, y las filas de la hoja de clculo se convierten en registros de la tabla. Se asigna una extensin .WRK al nombre de archivo de hoja de clculo creado en Symphony versin 1.0. 5

XLS Incluya XLS para importar datos desde una hoja de clculo Microsoft Excel. Las columnas de la hoja de clculo se transforman en campos de la tabla, y las filas se convierten en registros de la tabla. Los nombres de archivos de hoja de clculo creados en Microsoft Excel reciben la extensin .XLS. XL5 Incluya XL5 si desea importar datos desde Microsoft Excel versin 5.0. Las columnas de la hoja de clculo se convierte en campos de la tabla y las filas de la hoja de clculo se convierte en registros de la tabla. Los archivos de hoja de clculo creados en Microsoft Excel tienen una extensin .XLS. AS nPginaCdigos Especifica la pgina de cdigos de la tabla o el archivo de origen. Visual FoxPro copia el contenido de la tabla o el archivo de origen y, a medida que copia los datos, los convierte automticamente a la pgina de cdigos de la tabla actual. Si especifica un valor no permitido para nPginaCdigos Visual FoxPro generar un mensaje de error. Puede utilizar GETCP( ) para que nPginaCdigos muestre el cuadro de dilogo Pgina de cdigos, lo que le permite especificar una pgina de cdigos para la tabla o el archivo aadido. Si omite AS nPginaCdigos y Visual FoxPro no puede determinar la pgina de cdigos de la tabla o el archivo de origen, Visual FoxPro copiar el contenido de la tabla o el archivo de origen y, a medida que copia los datos, los convierte automticamente a la pgina de cdigos actual de Visual FoxPro. Si SET CPDIALOG tiene el valor ON, la tabla del rea de trabajo seleccionada actualmente se marcar con una pgina de cdigos. Si va a aadir datos desde una tabla que no est marcada con ninguna pgina de cdigos, aparecer el cuadro de dilogo Pgina de cdigos, de forma que pueda elegir la pgina de cdigos de la tabla desde la que est aadiendo datos. La pgina de cdigos actual de Visual FoxPro puede determinarse mediante CPCURRENT( ). Si omite AS nPginaCdigos y Visual FoxPro puede determinar la pgina de cdigos de la tabla o el archivo que se est aadiendo, Visual FoxPro copiar el contenido de la tabla o el archivo aadido y, a medida que copia los datos, los convertir automticamente a la pgina de cdigos de la tabla seleccionada actualmente. Si nPginaCdigos es 0, Visual FoxPro supondr que la pgina de cdigos de la tabla o el archivo que se est aadiendo es la misma que la de la tabla seleccionada actualmente y no realizar ninguna conversin a la pgina de cdigos actual de Visual FoxPro. Comentarios Si el archivo desde el que va a aadir datos es una tabla de Visual FoxPro o una tabla creada en una versin anterior de FoxPro, se supone que tiene una extensin .DBF. Si la tabla de Visual FoxPro o la tabla creada en una versin anterior de FoxPro no tiene una extensin .DBF, deber especificar su extensin. Si el archivo no es una tabla de Visual FoxPro ni una tabla creada en una versin anterior de FoxPro, deber especificar el tipo de archivo desde el que va a aadir datos. Antes de poder aadir datos desde una tabla creada en dBASE IV o dBASE V que contenga un campo memo, debe abrir primero la tabla en Visual FoxPro mediante USE. Cuando se le pregunte si desea convertir el archivo, responda afirmativamente. Si aade datos desde una tabla de Visual FoxPro o desde una tabla creada en una versin anterior de FoxPro, la tabla desde la que aade datos puede estar abierta en otra rea de trabajo. Los registros marcados para eliminacin en la tabla desde la que est aadiendo datos se desmarcan una vez aadidos los registros.

APPEND FROM ARRAY (Comando)


Aade a la tabla seleccionada actualmente un registro por cada fila de una matriz y rellena cada registro con datos de la fila correspondiente de la matriz. Sintaxis APPEND FROM ARRAY NombreMatriz [FOR lExpresin] [FIELDS ListaCampos] 6

Argumentos NombreMatriz Especifica el nombre de la matriz que contiene los datos que se van a copiar a los nuevos registros. Se agregan nuevos registros a la tabla hasta que se hayan aadido todas las filas de la matriz. FOR lExpresin Especifica una condicin para aadir registros desde la matriz. lExpresin debe contener el nombre de un campo de destino en su expresin condicional. Antes de que una fila de la matriz se aada a un registro de la tabla, el elemento de matriz correspondiente al campo de destino especificado en lExpresin se comprueba para determinar si cumple la condicin de lExpresin. Si el elemento de matriz satisface la condicin, se aade un registro. Si el elemento de matriz no satisface la condicin, la fila de matriz no se aade, y la fila siguiente de la matriz se comprueba para determinar si cumple la condicin. FIELDS ListaCampos Especifica que slo los campos de ListaCampos se actualizan a partir de la matriz. El primer campo de la lista se actualiza con el contenido del primer elemento de la matriz, el segundo campo se actualiza con el segundo elemento, etctera. Comentarios Los campos memo y general se ignoran en APPEND FROM ARRAY. Cuando se abre una tabla para uso compartido, APPEND FROM ARRAY bloquea el encabezado de la tabla mientras se agregan los registros. Si la matriz es unidimensional, APPEND FROM ARRAY agregar un registro a la tabla. El contenido del primer elemento de la matriz rellena el primer campo del nuevo registro aadido, el contenido del segundo elemento de la matriz rellena el segundo campo del registro, y as sucesivamente. Si la matriz unidimensional tiene ms elementos que campos tenga la tabla, los elementos adicionales se pasarn por alto. Si la tabla tiene ms campos que elementos la matriz, los campos adicionales se inicializarn al valor vaco predeterminado. Estos son los valores vacos predeterminados para cada tipo de campo: Tipo de campo Carcter Numrico Moneda Flotante Entero Doble Fecha FechaHora Lgico Falso Memo Vaco Valor predeterminado Espacios 0 0 0 0 0 Fecha vaca (p. ej. CTOD()) FechaHora vaca (e.g. CTOT()) (.F.) (sin contenido)

Si la matriz es bidimensional, APPEND FROM ARRAY aadir un nuevo registro a la tabla por cada fila de la matriz. Por ejemplo, si la matriz tiene cuatro filas, se aadirn cuatro nuevos registros a la tabla. El contenido de la primera columna de la matriz rellena el primer campo de los nuevos registros aadidos, la segunda columna de la matriz rellena el segundo campo de los nuevos registros, etc. Por ejemplo, si la matriz tiene cuatro filas y tres columnas, los elementos de la primera columna de la matriz rellenarn el primer campo de cada uno de los cuatro nuevos registros aadidos a la tabla. Si la matriz bidimensional tiene ms columnas que campos hay en la tabla, las columnas adicionales se pasarn por alto. Si la tabla tiene ms campos que columnas hay en la matriz, los campos adicionales se inicializarn a valores vacos.

APPEND FROM ARRAY puede rellenar un campo incluso si el tipo de datos del elemento de matriz correspondiente no coincide con el tipo de datos del campo, si los datos del elemento de matriz son compatibles con el tipo de datos del campo correspondiente. Si los datos no son compatibles, el campo se inicializa a un valor vaco.

APPEND MEMO (Comando)


Copia a un campo memo el contenido de un archivo de texto. Sintaxis APPEND MEMO NombreCampoMemo FROM NombreArchivo [OVERWRITE] [AS nPginaCdigos] Argumentos NombreCampoMemo Especifica el nombre de un campo memo al que se aade el archivo. FROM NombreArchivo Especifica el archivo de texto cuyo contenido se copia al campo memo. Debe incluir el nombre completo del archivo de texto, incluyendo su extensin. OVERWRITE El contenido actual del campo memo queda reemplazado por el contenido del archivo. AS nPginaCdigos Especifica la pgina de cdigos del archivo de texto que se copia al campo memo. Visual FoxPro copia el contenido del archivo de texto y, a medida que copia los datos al campo memo, los convierte automticamente desde la pgina de cdigos especificada hasta la de la tabla que contiene el campo memo. Si la tabla que contiene el campo memo no est marcada con una pgina de cdigos, Visual FoxPro convertir automticamente los datos desde la pgina de cdigos especificada hasta la pgina de cdigos actual de Visual FoxPro. Si especifica un valor no aceptado para nPginaCdigos Visual FoxPro generar un mensaje de error. Puede utilizar GETCP( ) para que nPginaCdigos muestre el cuadro de dilogo Pgina de cdigos, de forma que pueda especificar una pgina de cdigos para la tabla o el archivo aadido. Si omite la clusula AS nPginaCdigos o si especifica 0 para nPginaCdigos, no se realizar ninguna conversin de pgina de cdigos para el archivo de texto. Comentarios Todo el contenido del archivo de texto se aade al contenido del campo memo especificado en el registro actual si se omite OVERWRITE.

ASORT( ) (Funcin)
Ordena los elementos de una matriz en sentido ascendente o descendente. Sintaxis ASORT(NombreMatriz [, nElementoInicial [, nNmeroOrdenado [, nOrden]]]) Tipos devueltos Numeric Argumentos NombreMatriz Especifica el nombre de la matriz que va a ordenar. nElementoInicial Especifica el elemento inicial de la ordenacin. Si omite nElementoInicial, de forma predeterminada la matriz se ordenar empezando por su primer elemento. Si la matriz es unidimensional, la ordenacin incluir nElementoInicial. Si la matriz es bidimensional, el elemento inicial nEle-

mentoInicial determinar tanto la fila donde comienza el orden como la columna que determina el sentido en el que se ordenan las filas. Nota: Puede hacer referencia de dos formas a un elemento de una matriz bidimensional. En el primer mtodo se utilizan dos subndices para especificar la posicin de fila y columna del elemento de la matriz; en el otro mtodo se utiliza un nmero de elemento. Esta funcin y otras que manipulan matrices bidimensionales requieren nmeros de elemento (en ASORT( ) las expresiones numricas nElementoInicial y nNmeroOrdenado). Puede utilizar AELEMENT( ) para devolver el nmero de elemento de los subndices de fila y columna de una matriz bidimensional. El ejemplo siguiente muestra que el elemento inicial nElementoInicial determina cmo se ordenan las filas en una matriz bidimensional. Se crea una pequea matriz llamada gaMatriz y se ordena dos veces. La primera comenzando por el primer elemento de gaMatriz y las filas se ordenan basndose en los valores contenidos en la primera columna de la matriz. La segunda comienza por el cuarto elemento de gaMatriz y las filas se ordenan basndose en los valores contenidos en la segunda columna. La primera vez se ordena a partir de la primera fila. La segunda comienza por la segunda fila. Puede utilizar DISPLAY MEMORY para mostrar el contenido de la matriz; en estos ejemplos se utilizan tablas para mostrar grficamente el resultado del orden. Estos comandos crean la matriz llamada gaMatriz: DIMENSION gaMatriz(3,2) gaMatriz(1) = 'G' gaMatriz(2) = 'A' gaMatriz(3) = 'C' gaMatriz(4) = 'Z' gaMatriz(5) = 'B' gaMatriz(6) = 'N' gaMatriz tiene este aspecto: Columna 1 Fila 1 G Fila 2 C Fila 3 B Columna 2 A Z N

Luego se ordena la matriz con ASORT( ) comenzando por el primer elemento (1,1) de la matriz. Los elementos de la primera columna se ordenan en sentido ascendente reorganizando las filas de la matriz. =ASORT(gaMatriz,1) Observe el nuevo orden de las filas: Columna 1 B C G Columna 2 N Z A

Fila 1 Fila 2 Fila 3

Luego se ordena la matriz comenzando por el cuarto elemento (2,2) de la matriz. Los elementos de la segunda columna se ordenan reorganizando las filas de la matriz. =ASORT(gaMatriz,4) Observe la diferencia en el orden de las filas: Columna 1 Fila 1 B Fila 2 G Fila 3 C Columna 2 N A Z

nNmeroOrdenado Especifica el nmero de elementos que se ordenan en una matriz unidimensional o el nmero de filas que se ordenan en una matriz bidimensional. Por ejemplo, si la matriz es unidimensional y nElementoInicial es 2, indicando que la ordenacin comenzar por el segundo elemento de la matriz, y nNmeroOrdenado es 3, indicando que el orden debe incluir tres elementos, se ordenarn el segundo, el tercer y el cuarto elemento de la matriz. Si nNmeroOrdenado es 1 o se omite, se ordenarn todos los elementos de la matriz, desde el elemento inicial nElementoInicial hasta el ltimo elemento. Si la matriz es bidimensional, nNmeroOrdenado designar el nmero de filas que se van a ordenar, comenzando por la fila que contiene el elemento inicial nElementoInicial. Por ejemplo, si nElementoInicial es 2 y nNmeroOrdenado es 3, se ordenarn la fila que contiene el segundo elemento de la matriz y las dos filas siguientes. Si nNmeroOrdenado es 1 o se omite, se ordenarn todas las filas de la matriz comenzando por la fila que contiene nElementoInicial hasta la ltima fila de la matriz. nOrden Especifica el sentido de ordenacin (ascendente o descendente) para los elementos de la matriz. De forma predeterminada, los elementos de la matriz se ordenan en sentido ascendente. Si nOrden es 0 o se omite, los elementos de la matriz se ordenarn en sentido ascendente. Si nOrden es 1 o cualquier valor distinto de cero, los elementos de la matriz se ordenarn en sentido descendente. Comentarios Todos los elementos incluidos en la ordenacin deben ser del mismo tipo de datos. Las matrices unidimensionales se ordenan por elementos, mientras que las matrices bidimensionales se ordenan por filas. Cuando se ordena una matriz bidimensional, el orden de las filas de la matriz se cambia para que los elementos de una columna de la matriz estn en orden ascendente o descendente. Si el orden se ha realizado satisfactoriamente, se devolver 1; de lo contrario se devolver 1.

AVERAGE (Comando)
Calcula la media aritmtica de expresiones o de campos numricos. Sintaxis AVERAGE [ListaExpresiones] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [TO ListaVariablesMemoria | TO ARRAY NombreMatriz] [NOOPTIMIZE] Argumentos ListaExpresiones Especifica las expresiones de las que se calcula la media. ListaExpresiones puede ser una lista de campos de la tabla separados por comas o bien expresiones numricas que utilicen campos de la tabla. Alcance Especifica el registro o el intervalo de registros que se desea incluir en el promedio. Slo se calcula el promedio de aquellos registros que queden dentro del intervalo especificado por el alcance. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro, y REST. El alcance predeterminado para AVERAGE es ALL. Los comandos que incluyen Alcance slo actan sobre la tabla del rea de trabajo activa. FOR lExpresin1 Especifica una condicin por la que slo se incluyen aquellos registros que satisfagan la condicin lgica lExpresin. Este argumento le permite filtrar los registros no deseados. Rushmore optimiza una consulta AVERAGE FOR si lExpresin es una expresin optimizable. Para conseguir el mximo rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica que, siempre y cuando la expresin lgica lExpresin2 se evale como verdadera(.T.), los registros se incluirn en el promedio. TO ListaVariablesMemoria Especifica la lista de variables o elementos de matriz donde se almacena el resultado del promedio. 10

TO ARRAY NombreMatriz Especifica la matriz unidimensional donde se almacena el resultado del promedio. La matriz unidimensional puede crearse antes de ejecutar AVERAGE. Si la matriz que se incluye en AVERAGE no existe, Visual FoxPro la crear automticamente. Si la matriz existe pero no es lo suficientemente grande para contener todos los resultados, Visual FoxPro aumenta su tamao automticamente para dar cabida a la informacin. NOOPTIMIZE Desactiva la optimizacin Rushmore de AVERAGE. Comentarios Se calcula el promedio de todos los campos numricos de la tabla seleccionada, a menos que incluya una lista opcional de expresiones. El resultado aparecer en la pantalla si SET TALK est ON. Si SET HEADINGS est ON, los nombres de campo o la expresin en la que se usen los nombres de campo aparecern encima del resultado.

BETWEEN( ) (Funcin)
Determina si el valor de una expresin queda dentro de los valores de otras dos expresiones del mismo tipo de datos. Sintaxis BETWEEN(eValorPrueba, eValorInferior, eValorSuperior) Tipos devueltos Logical o valor nulo Argumentos eValorPrueba Especifica la expresin cuyo valor verifica BETWEEN( ). Si el valor de eValorPrueba es mayor o igual que el valor de eValorInferior y menor o igual que el valor de eValorSuperior, BETWEEN( ) devolver verdadero (.T.). De lo contrario, BETWEEN( ) devolver falso (.F.). BETWEEN( ) devuelve el valor nulo si eValorInferior o eValorSuperior son el valor nulo. eValorInferior Especifica el valor inferior del intervalo que evala BETWEEN( ). eValorSuperior Especifica el valor superior del intervalo que evala BETWEEN( ). Comentarios BETWEEN( ) devuelve el valor verdadero (.T.) si el valor de una expresin de tipo Character, Date, DateTime, Numeric, Float, Integer, Double o Currency cae dentro de los valores de otras dos expresiones del mismo tipo de datos. Si el valor de la expresin no queda dentro de los valores de las otras dos expresiones, BETWEEN( ) devolver falso (.F.). BETWEEN( ) devuelve el valor nulo si eValorInferior o eValorSuperior son el valor nulo.

BOF( ) (Funcin)
Determina si el puntero de registro est situado al principio de una tabla. Sintaxis BOF([nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos 11

nreaTrabajo Especifica el nmero del rea de trabajo para una tabla abierta en otra rea de trabajo. cAliasTabla Especifica el alias para una tabla abierta en otra rea de trabajo. Si la tabla cuya condicin de principio de archivo desea probar est abierta en un rea de trabajo distinta de la seleccionada actualmente, utilice estos argumentos opcionales para especificar el nmero del rea de trabajo o el alias para la tabla. Si no hay ninguna tabla abierta en el rea de trabajo especificada, BOF( ) devolver falso (.F.). Comentarios Utilice BOF( ) para probar la condicin de principio de archivo de una tabla. BOF( ) devuelve verdadero (.T.) si ha intentado mover el puntero de registro a una posicin anterior al primer registro de la tabla.

BUILD APP (Comando)


Crea un archivo de aplicacin con la extensin .APP a partir de un archivo de proyecto existente. Sintaxis BUILD APP APPNombreArchivo FROM NombreProyecto [RECOMPILE] Argumentos APPNombreArchivo Especifica el nombre de archivo de la aplicacin que va a generar. La extensin predeterminada del nombre de archivo es .APP. FROM NombreProyecto Especifica el nombre del proyecto a partir del cual se genera la aplicacin. RECOMPILE Especifica que el proyecto se compila antes de generar el archivo de aplicacin. Todos los archivos de programa y formato; formulario, etiqueta, informe y cdigo de origen de biblioteca de clases visuales; y se compilan procedimientos almacenados en bases de datos del proyecto. Comentarios Un archivo de proyecto se crea mediante CREATE PROJECT o MODIFY PROJECT. Un archivo de proyecto es una tabla que utiliza las extensiones de archivo .PJX (archivo de tabla) y .PJT (archivo memo). Antes de usar BUILD APP, asegrese de que el archivo de proyecto contiene todos los archivos necesarios en la aplicacin. Si durante la generacin falta algn archivo necesario, Visual FoxPro generar un error. Estos y otros errores de tiempo de compilacin se almacenan en un archivo con la extensin .ERR. Los ocho primeros caracteres del nombre del archivo de errores son los mismos que los del nombre del proyecto.

BUILD EXE (Comando)


Crea un archivo ejecutable a partir de un proyecto. Sintaxis BUILD EXE EXENombreArchivo FROM NombreProyecto [RECOMPILE]

Argumentos NombreArchivoEXE Especifica el nombre del archivo ejecutable que desea crear. Si existe un archivo de aplicacin .APP con el mismo nombre raz que el archivo ejecutable autnomo, se eliminar. Tenga en cuenta que si existe un archivo ejecutable y crea un archivo .APP con el mismo nombre, se eliminar el archivo ejecutable. 12

FROM NombreProyecto ejecutable.

Especifica el nombre del proyecto a partir del cual se generar el archivo

RECOMPILE Especifica que el proyecto se compila antes de generar el archivo ejecutable. Todos los archivos de programa y de formato; formulario, etiqueta, informe y cdigo de origen de biblioteca de clases visuales; y se compilan procedimientos almacenados en bases de datos del proyecto. Comentarios Un archivo ejecutable creado con BUILD EXE requiere dos archivos de soporte: VFP500.DLL y VFP5ENU.DLL (EN denota la versin inglesa). Estos archivos se deben colocar en el mismo directorio que el archivo ejecutable o en la ruta de MS-DOS. Si el archivo ejecutable contiene definiciones de clase OLEPUBLIC, BUILD EXE registra automticamente las definiciones de clase OLEPUBLIC en el registro del sistema. Las definiciones de clase OLEPUBLIC aparecen en el cuadro de lista Clases de servidor de la ficha Servidores del cuadro de dilogo Informacin de proyecto. BUILD EXE tambin crea archivos .VBR (registro) y .TLB (biblioteca de tipos) con el mismo nombre que el archivo ejecutable. El archivo .VBR le permite registrar las definiciones de clase en el registro del sistema cuando se mueve el archivo ejecutable a un equipo diferente. El archivo .TLB se usar para examinadores de objetos.

BUILD PROJECT (Comando)


Crea y genera un archivo de proyecto. Sintaxis BUILD PROJECT NombreArchivoProyecto FROM NombrePrograma1 | NombreMen1 | NombreInforme1 | NombreInforme1 | NombreFormulario1 | NombreBiblioteca1 [, NombrePrograma2 | NombreMen2 | NombreInforme2 | NombreEtiqueta2 | NombreFormulario2 | NombreBiblioteca2 ...] Argumentos NombreArchivoProyecto Especifica el nombre de la tabla de proyecto que se va a crear. FROM NombrePrograma1 | NombreMen1 | NombreInforme1 | NombreEtiqueta1 | NombreFormulario1 | NombreBiblioteca1 Especifica los archivos que va a incluir en el proyecto. Puede especificar uno o ms archivos de programa, men, informe, etiqueta, formulario o biblioteca; el proyecto llevar un registro de estos archivos, as como de sus dependencias, referencias y conexiones. De forma predeterminada, el primer archivo ejecutable de programa o de men de la clusula FROM es el archivo del programa principal de proyecto. Comentarios BUILD PROJECT crea automticamente una tabla de proyecto con la extensin de nombre de archivo .PJX, abriendo y procesando uno o ms archivos de programa, men, informe, etiqueta, formulario o biblioteca que especifique. Puede usar el archivo de proyecto para crear uno de dos tipos de programas: un archivo .APP de aplicacin o un archivo .EXE ejecutable. La tabla del proyecto mantiene un registro de todos los archivos necesarios para crear una aplicacin, as como las dependencias, referencias y conexiones entre los archivos. Una vez que especifique las piezas del proyecto, Visual FoxPro se asegurar de que la aplicacin se basa en los archivos de origen ms recientes. Cuando Visual FoxPro encuentra un archivo de programa, men o formulario mientras crea un archivo de proyecto desde BUILD PROJECT, busca su archivo compilado y compara la marca de fecha y hora de los dos archivos. Si la marca de fecha y hora del archivo de origen es posterior a la del archivo compilado, Visual FoxPro volver a compilar el archivo de origen. 13

Cada archivo de proyecto contiene una marca de fecha y hora para que pueda actualizar el archivo de proyecto cuando haga cambios en los archivos del proyecto o cuando cambien las dependencias. Esto ayuda a garantizar que cualquier aplicacin creada a partir de un archivo de proyecto usar siempre los archivos de origen ms recientes. Para actualizar un archivo de proyecto, emita BUILD PROJECT sin la clusula opcional FROM y Visual FoxPro actualizar el proyecto especificado. Cuando emita BUILD PROJECT, se informar de las referencias no resueltas y de otros errores, pero esto no evitar que se cree el archivo de proyecto. Esto le permitir crear proyectos cuando todas las piezas necesarias no se hayan creado realmente o no estn disponibles en el momento de crear el proyecto. Las referencias no resueltas u otros problemas podrn entonces corregirse actualizando el archivo de proyecto en una fecha posterior o modificando manualmente la informacin almacenada en el archivo de proyecto mediante MODIFY PROJECT.

CALCULATE (Comando)
Realiza operaciones financieras y estadsticas en campos de una tabla o expresiones que utilicen campos. Sintaxis CALCULATE eListaExpresiones [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [TO ListaVariablesMemoria | TO ARRAY NombreMatriz] [NOOPTIMIZE] Argumentos eListaExpresiones Especifica las expresiones que pueden contener cualquier combinacin de las siguientes funciones: AVG(nExpresin) CNT( ) MAX(eExpresin) MIN(eExpresin) NPV(nExpresin1, nExpresin2 [, nExpresin3]) STD(nExpresin) SUM(nExpresin) VAR(nExpresin) Las funciones de la lista eListaExpresiones estn separadas con comas. Estas funciones son especficas de CALCULATE y se describen detalladamente ms adelante en esta seccin. No deben confundirse con funciones independientes de nombre parecido. Por ejemplo, CALCULATE MIN( ) no es lo mismo que MIN( ). Alcance Especifica un intervalo de registros utilizados en el clculo. Solamente se incluyen en dicho clculo los registros incluidos en el intervalo. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistros, y REST. Para obtener ms informacin acerca de las clusulas de alcance, vea el tema Clusulas de alcance. Los comandos que incluyen Alcance solamente actan sobre la tabla del rea de trabajo activa. El alcance predeterminado de CALCULATE es ALL (todos los registros).

14

FOR lExpresin1 Especifica que slo los registros que satisfacen la condicin lgica lExpresin1 se incluirn en el clculo. La inclusin de FOR permite incluir registros en el clculo de manera condicional, filtrando los registros no deseados. Rushmore optimizar una consulta CALCULATE ... FOR si lExpresin1 es una expresin optimizable. Para obtener el mejor rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los registros se incluyen en el clculo siempre y cuando la expresin lgica lExpresin2 se evale como verdadera (.T.). TO ListaVariablesMemoria Especifica una o varias variables donde se almacenan los resultados del clculo. Si una variable especificada no existe, Visual FoxPro la crear automticamente con el nombre que usted especifique. TO ARRAY NombreMatriz Especifica el nombre de la matriz donde se pueden almacenar los resultados del clculo. Si el nombre de matriz especificado no existe, Visual FoxPro crear automticamente una matriz con este nombre. Si la matriz existe pero no es suficientemente grande para contener todos los resultados, Visual FoxPro incrementar automticamente su tamao para dar cabida a la informacin. Si una matriz existente es mayor de lo necesario, los elementos adicionales permanecern sin cambios. Los resultados se almacenan en los elementos de la matriz en el orden en que se especifican en el comando CALCULATE. NOOPTIMIZE Desactiva la optimizacin Rushmore de CALCULATE. AVG(nExpresin) Calcula la media aritmtica de nExpresin. Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. CNT( ) Devuelve el nmero de registros de la tabla. Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. MAX(eExpresin) Devuelve el valor mayor o el ms reciente de eExpresin. Dentro de la clusula MAX( ) es posible especificar cualquier campo (Character, Date, DateTime, Numeric, Float, Integer, Double o Currency) o cualquier expresin vlida que utilice campos de estos tipos. Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. MIN(eExpresin) Devuelve el valor menor o el ms antiguo de eExpresin. Dentro de eExpresin es posible especificar cualquier campo (Character, Date, DateTime, Numeric, Float, Integer, Double o Currency) o cualquier expresin vlida que utilice campos de estos tipos. Slo se incluye en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. NPV(nExpresin1, nExpresin2 [, nExpresin3]) Calcula el valor neto presente de una serie de flujos de caja futuros descontados a una tasa de inters peridica constante. nExpresin1 es la tasa de inters expresada como valor decimal. nExpresin2 es un campo, expresin de campo o expresin numrica que representa una serie de flujos de caja. Cada flujo de caja puede ser positivo o negativo. En los casos en que nExpresin2 sea un campo, el valor del campo en cada registro de la tabla se considerar un flujo de caja. nExpresin3 es una inversin inicial opcional. Si no se incluye la inversin inicial, se supondr que sta ocurre al final del primer periodo. Esta inversin inicial es el primer registro del campo y es negativa para representar una salida de caja. Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. STD(nExpresin) Calcula la desviacin tpica de nExpresin. La desviacin tpica mide el grado en que los valores de los campos o expresiones que utilizan campos difieren del promedio de todos los valores. Cuanto menor sea la desviacin tpica, menos varan los valores con respecto al promedio.

15

Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. SUM(nExpresin) Calcula el total de la suma de los valores de nExpresin. Slo se incluyen en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. VAR(nExpresin) Calcula la varianza del promedio de nExpresin. Cuanto menor sea la varianza, menos varan los valores con respecto al promedio. Slo se incluye en el resultado los registros que cumplen las condiciones de Alcance y/o de las clusulas opcionales FOR o WHILE. Comentarios Los registros que contienen el valor nulo no se incluyen en las operaciones que realiza CALCULATE.

CDOW( ) (Funcin)
Devuelve el da de la semana a partir de una expresin de Date o de DateTime dada. Sintaxis CDOW(dExpresin | tExpresin) Tipos devueltos Character Argumentos dExpresin Especifica la fecha para la que CDOW( ) devuelve el da. tExpresin Especifica la DateTime para la que CDOW( ) devuelve el da. Comentarios CDOW( ) la funcin de caracteres del da de la semana, devuelve el nombre del da de la semana a partir de una expresin de Date.

CHR( ) (Funcin)
Devuelve el carcter asociado al cdigo ANSI numrico especificado. Sintaxis CHR(nCdigoANSI) Tipos devueltos Character Argumentos nCdigoANSI Especifica un nmero entre 0 y 255 cuyo carcter ANSI equivalente devuelve CHR( ). Utilice ASC( ) para devolver el valor ANSI de un carcter especificado. Comentarios CHR( ) devuelve un nico carcter correspondiente a la posicin numrica del carcter en la tabla de caracteres de la pgina de cdigos actual. CHR( ) puede utilizarse para enviar cdigos de control a una impresora.

16

CMONTH( ) (Funcin)
Devuelve el nombre del mes a partir de una expresin de fecha o de DateTime dada. Sintaxis CMONTH(dExpresin | tExpresin) Tipos devueltos Character Argumentos dExpresin Especifica la expresin de fecha a partir de la cual CMONTH( ) devuelve el nombre del mes. tExpresin Especifica la expresin de DateTime de la cual CMONTH( ) devuelve el nombre del mes. Comentarios CMONTH( ) devuelve el nombre del mes como una cadena en el formato de nombre apropiado.

COPY FILE (Comando)


Duplica cualquier tipo de archivo. Sintaxis COPY FILE NombreArchivo1 TO NombreArchivo2 Comentarios COPY FILE crea un duplicado del archivo cuyo nombre se especifica en NombreArchivo1. COPY FILE puede usarse para copiar todo tipo de archivos. El archivo que se va a copiar no puede estar abierto. Es necesario incluir las extensiones tanto del nombre del archivo de origen NombreArchivo1 como del nombre del archivo de destino NombreArchivo2. NombreArchivo1 y NombreArchivo2 pueden contener caracteres comodn tales como * y ?. Por ejemplo, para crear copias de seguridad de todos los archivos de programa con la extensin .PRG en el directorio o carpeta actual, emita COPY FILE *.PRG TO *.BAK. Si utiliza COPY FILE para crear una copia de seguridad de una tabla que tiene un campo memo, un ndice estructural o ambos, asegrese de copiar tambin los archivos .FPT y .CDX.

COPY MEMO (Comando)


Copia a un archivo de texto el contenido del campo memo especificado en el registro actual. Sintaxis COPY MEMO NombreCampoMemo TO NombreArchivo [ADDITIVE] [AS nPginaCdigos] Argumentos NombreCampoMemo Especifica el nombre del campo memo copiado al archivo de texto. TO NombreArchivo Especifica el nombre de un archivo de texto nuevo o existente al que se copia el campo memo. Si no proporciona ninguna extensin en NombreArchivo, se asignar la extensin .TXT. Tambin puede incluir una ruta de acceso junto con el nombre de archivo. 17

ADDITIVE Aade el contenido del campo memo al final del archivo de texto especificado. Si omite ADDITIVE, el contenido del campo memo reemplazar el contenido del archivo de texto. AS nPginaCdigos Especifica la pgina de cdigos para el archivo de texto creado por COPY MEMO. Visual FoxPro copia el contenido del campo memo especificado y, a medida que copia los datos, los convierte automticamente a la pgina de cdigos especificada para el archivo de texto. Si especifica para nPginaCdigos un valor no admitido, generar un mensaje de error. Puede usar GETCP( ) para que nPginaCdigos muestre el cuadro de dilogo Pgina de cdigos y le permita especificar otra tabla distinta para el archivo creado por Visual FoxPro. Si AS nPginaCdigos se omite o es 0, no se producir ninguna conversin de pgina de cdigos.

COPY STRUCTURE (Comando)


Crea una nueva tabla vaca con la misma estructura que la tabla seleccionada actualmente. Sintaxis COPY STRUCTURE TO NombreArchivo [FIELDS ListaCampos] [[WITH] CDX | [WITH] PRODUCTION] Argumentos NombreArchivo Especifica el nombre de la nueva tabla vaca que se desea crear. En Visual FoxPro, los procedimientos almacenados y las expresiones desencadenantes de la tabla nueva son idnticos a los de la tabla seleccionada actualmente. FIELDS ListaCampos Especifica que solamente se copien a la tabla nueva los campos cuyos nombres se especifican en ListaCampos. Si omite FIELDS ListaCampos, se copiarn todos los campos en la nueva tabla. [WITH] CDX | [WITH] PRODUCTION Crea un archivo de ndice estructural para la nueva tabla idntico al de la tabla existente. Las etiquetas y expresiones de ndice del archivo de ndice estructural original se copian al nuevo archivo de ndice estructural. Las clusulas CDX y PRODUCTION son idnticas. En Visual FoxPro, se convierte un ndice principal para la tabla actualmente seleccionada en un ndice candidato para la tabla vaca nueva.

COPY TO (Comando)
Crea un nuevo archivo a partir del contenido de la tabla seleccionada actualmente. Sintaxis COPY TO NombreArchivo [DATABASE DatabaseName [NAME NombreLargoTabla]] [FIELDS ListaCampos | FIELDS LIKE Estructura | FIELDS EXCEPT Estructura] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [[WITH] CDX] | [[WITH] PRODUCTION] [NOOPTIMIZE] [[TYPE] [FOXPLUS | FOX2X | DIF | MOD | SDF | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5 | DELIMITED [WITH Delimitador | WITH BLANK | WITH TAB | WITH CHARACTER Delimitador]]] 18

[AS nPginaCdigos] Argumentos NombreArchivo Especifica el nombre del nuevo archivo que crea COPY TO. Si no incluye ninguna extensin con el nombre de archivo, se asignar la extensin predeterminada para el tipo de archivo especificado. Si no especifica ningn tipo de archivo, COPY TO crear una nueva tabla de Visual FoxPro y asignar al nombre del archivo de tabla la extensin predeterminada .DBF. DATABASE NombreBaseDatos Especifica una base de datos a la que se va a agregar la nueva tabla. NAME NombreLargoTabla Especifica un nombre largo para la nueva tabla. Los nombres largos de archivo pueden contener un mximo de 128 caracteres y se pueden utilizar en lugar de los nombres de archivo cortos en la base de datos. FIELDS ListaCampos Especifica qu campos se copiarn al nuevo archivo. Si omite FIELDS ListaCampos, todos los campos se copiarn al archivo. Si el archivo que est creando no es una tabla, los campos memo no se copiarn al nuevo archivo, incluso aunque en la lista de campos haya incluido nombres de campo memo. FIELDS LIKE Estructura Especifica que los campos de la tabla original que concuerdan con la estructura Estructura se incluyen en el nuevo archivo creado por COPY TO. FIELDS EXCEPT Estructura Especifica que todos los campos excepto aquellos que concuerden con la estructura de campo Estructura se incluirn en el nuevo archivo creado por COPY TO. La estructura de campos Estructura admite caracteres comodn. Por ejemplo, para especificar que todos los campos que empiecen por las letras A y P se incluirn en el nuevo archivo, use: COPY TO mytable FIELDS LIKE A*,P* La clusula LIKE se puede combinar con la clusula EXCEPT: COPY TO mytable FIELDS LIKE A*,P* EXCEPT PARTNO* Alcance Especifica un intervalo de registros que desea copiar a un archivo. Slo se copiarn los registros comprendidos en ese intervalo. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro, y REST. Para obtener ms informacin acerca de las clusulas de alcance, vea el tema Clusulas de alcance. FOR lExpresin1 Especifica que slo se copiarn al archivo aquellos registros para los cuales la condicin lgica lExpresin1 se evale como verdadera (.T.). Incluya FOR lExpresin1 para copiar condicionalmente registros, excluyendo los registros no deseados. RushmoreTM optimiza COPY TO con una clusula FOR lExpresin1 si lExpresin1 es una expresin optimizable. Para conseguir el mximo rendimiento, use una expresin optimizable en la clusula FOR lExpresin1. WHILE lExpresin2 Especifica una condicin por la cual se copiarn los registros siempre y cuando la expresin lgica lExpresin2 se evale como verdadera (.T.). [WITH] CDX | [WITH] PRODUCTION Crea un archivo de ndice estructural para la nueva tabla que es idntico al archivo de ndice estructural de la tabla existente. Las etiquetas y las expresiones de ndice del archivo de ndice estructural original se copian al nuevo archivo de ndice estructural. Las clusulas CDX y PRODUCTION son idnticas. No incluya CDX o PRODUCTION si va a copiar a un archivo que no es una nueva tabla de Visual FoxPro. NOOPTIMIZE Desactiva la optimizacin Rushmore de COPY TO.

19

TYPE Especifica el tipo de archivo si el archivo que va a crear no es una tabla de Visual FoxPro. Aunque debe especificar un tipo de archivo, no es necesario incluir la palabra clave TYPE. FOXPLUS Los archivos memo de Visual FoxPro tienen una estructura diferente que los archivos memo de FoxBASE+. Si la tabla de origen de Visual FoxPro contiene un campo memo, incluya la clusula FOXPLUS para crear una tabla que pueda utilizarse en FoxBASE+. El campo memo de Visual FoxPro no puede contener datos binarios, ya que FoxBASE+ no admite datos binarios en campos memo. FOX2X Crea una nueva tabla que se puede abrir en versiones anteriores de FoxPro (versiones 2.0, 2.5 y 2.6). Para campos de los tipos Numeric, Float, Integer, Double, y Currency, se convierten los valores nulos de la tabla de origen en cero en la nueva tabla. Los valores nulos de la tabla de origen se convierten a espacios en blanco en la nueva tabla. Para obtener ms informacin acerca de los valores en blanco, vea ISBLANK( ). Comentarios Si se ha establecido un orden de ndice, los registros se copiarn segn el orden de ndice principal.

COPY TO ARRAY (Comando)


Copia a una matriz datos de la tabla seleccionada actualmente. Sintaxis COPY TO ARRAY NombreMatriz [FIELDS ListaCampos] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [NOOPTIMIZE] Argumentos NombreMatriz Especifica la matriz a la que se deben copiar los datos de la tabla. FIELDS ListaCampos Especifica que solamente se copian a la matriz los campos especificados en ListaCampos. Si se omite la clusula FIELDS ListaCampos, todos los campos se copiarn a la matriz si sta tiene suficientes columnas. Alcance Especifica el intervalo de registros que se copian a la matriz. Solamente se copian los registros incluidos en el intervalo. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistros, y REST. El alcance predeterminado para COPY TO ARRAY es ALL (todos los registros). FOR lExpresin1 Especifica que solamente se copian a la matriz los registros que satisfacen la condicin lgica lExpresin1. Incluir FOR le permite copiar condicionalmente diversos registros a la matriz, desechando los no deseados. Rushmore optimizar una consulta COPY TO ARRAY que incluya FOR lExpresin1 si lExpresin1 es una expresin optimizable. Para obtener un mejor rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los registros se copian a la matriz siempre y cuando la expresin lgica lExpresin2 se evale como verdadera (.T.). NOOPTIMIZE Desactiva la optimizacin Rushmore de COPY TO ARRAY. Comentarios

20

COPY TO ARRAY y SCATTER son similares. COPY TO ARRAY copia mltiples registros a una matriz, mientras que SCATTER copia un solo registro a una matriz o a un conjunto de variables de memoria. Tanto COPY TO ARRAY como SCATTER crean una nueva matriz si no existe una matriz con el nombre especificado. Para copiar un solo registro a una matriz puede especificar una matriz unidimensional. La matriz unidimensional debe tener el mismo nmero de elementos que el nmero de campos de la tabla, sin contar los campos memo. Los campos memo se pasan por alto COPY TO ARRAY. Si especifica una matriz unidimensional, el primer campo de un registro se almacenar en el primer elemento de la matriz, el segundo campo se almacenar en el segundo elemento y as sucesivamente. Si la matriz unidimensional tiene ms elementos que campos hay en la tabla, los elementos sobrantes permanecern sin cambios. Si la matriz tiene menos elementos que campos hay en la tabla, los campos sobrantes se pasarn por alto. Para copiar mltiples registros o una tabla entera a una matriz, utilice una matriz bidimensional. El nmero de filas de la matriz es el nmero de registros que puede contener, y su nmero de columnas es igual al nmero de campos que se pueden incluir en ella. Cada registro se almacena en una fila de la matriz y cada campo del registro se almacena en una columna. Para cada registro, el primer campo se almacena en la primera columna de la matriz, el segundo campo se almacena en la segunda columna y as sucesivamente. Si el nmero de columnas de la matriz es mayor que el de campos de la tabla, las columnas restantes permanecern sin cambios. Si el nmero de columnas de la matriz es menor que el nmero de campos de la tabla, los campos restantes no se almacenarn en la matriz. Cada fila sucesiva de la matriz se llena con el contenido del siguiente registro de la tabla. Si la matriz tiene ms filas que registros tiene la tabla, las filas restantes permanecern sin cambios. Si la matriz tiene menos filas que registros tiene la tabla, los registros restantes no se almacenarn en la matriz. Es posible copiar datos desde matrices a nuevos registros de tablas con APPEND FROM ARRAY. Tambin es posible copiar datos de una matriz o un conjunto de variables de memoria a registros de una tabla usando GATHER.

COUNT (Comando)
Cuenta los registros de una tabla. Sintaxis COUNT [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [TO NombreVariableMemoria] [NOOPTIMIZE] Argumentos Alcance Especifica el intervalo de registros que se va a incluir en la cuenta. Las clusulas de alcance son: ALL, NEXT nRegistro, RECORD nNmeroRegistros, y REST. Los comandos que incluyen Alcance solamente actan sobre la tabla del rea de trabajo activa. El alcance predeterminado de COUNT es ALL (todos los registros). FOR lExpresin1 Especifica que solamente se cuentan los registros que satisfacen la condicin lgica lExpresin1. La inclusin de FOR le permite contar registros condicionalmente, desechando los registros no deseados. Rushmore optimizar una consulta COUNT FOR si lExpresin1 es una expresin optimizable. Para conseguir un mejor rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los registros se cuentan siempre y cuando la expresin lgica lExpresin2 se evale como verdadera (.T.). 21

TO NombreVariableMemoria Especifica la variable de memoria o la matriz en la que se almacena la cuenta de registros. Si la variable de memoria especificada no existe, Visual FoxPro la crear. NOOPTIMIZE Desactiva la optimizacin Rushmore de COUNT. Comentarios COUNT cuenta los registros dentro del alcance de registros para los que se cumplen las condiciones FOR o WHILE. Si SET TALK est a ON, se mostrar la cuenta de registros. Si SET DELETE est a OFF, los registros marcados para su eliminacin se incluirn en la cuenta.

CREATE DATABASE (Comando)


Crea una base de datos y la abre. Sintaxis CREATE DATABASE [NombreBaseDatos| ?] Argumentos NombreBaseDatos Especifica el nombre de la base de datos que se va a crear. Si SAFETY est a ON y el nombre de la base de datos que especifica tiene la misma ruta de acceso y el mismo nombre que una base de datos existente, Visual FoxPro muestra un cuadro de dilogo de advertencia que le pide que especifique una ruta o un nombre nuevos para la base de datos. ? Muestra el cuadro de dilogo Crear en el que puede especificar el nombre de la base de datos que desea crear. Comentarios Un archivo de base de datos tiene una extensin .DBC. Los archivos memo asociados a la base de datos tienen una extensin .DCT y los archivos de ndice asociado tienen una extensin .DCX. La base de datos se abre de forma exclusiva, independientemente del valor de SET EXCLUSIVE. Puesto que CREATE DATABASE abre la base de datos cuando sta se ha creado, no es necesario que ejecute un comando OPEN DATABASE. Si se emite CREATE DATABASE sin alguno de sus argumentos opcionales, aparecer el cuadro de dilogo Crear, que le permite especificar un nombre para la base de datos.

CREATE FROM (Comando)


Crea una tabla a partir de un archivo COPY STRUCTURE EXTENDED. Sintaxis CREATE [NombreArchivo1 [DATABASE NombreBaseDatos [NAME NombreLargoTabla]]] FROM [NombreArchivo2] Argumentos NombreArchivo1 Especifica el nombre de la nueva tabla que se va a crear. DATABASE NombreBaseDatos Especifica la base de datos a la que se agregar la nueva tabla. NAME NombreLargoTabla Especifica un nombre largo para la nueva tabla. Los nombres largos pueden contener hasta 128 caracteres y se pueden utilizar en lugar de nombres cortos en la base de datos. 22

NombreArchivo2 Especifica la tabla (creada tanto con COPY STRUCTURE EXTENDED como manualmente) a partir de la cual se crea la nueva tabla. Comentarios Esta variacin de CREATE supone que la tabla especificada en NombreArchivo2 se ha creado con COPY STRUCTURE EXTENDED o manualmente. Se crea una tabla nueva NombreArchivo1 con la estructura descrita en NombreArchivo2. La tabla recin creada se convierte en la tabla activa Si no incluye NombreArchivo1 o NombreArchivo2 o ninguno de los dos, aparecer un cuadro de dilogo. En este cuadro de dilogo puede especificar el archivo que desea crear, el archivo FROM o ambos. Observe que todos los registros de NombreArchivo2, incluyendo los marcados para eliminar, se usan para crear NombreArchivo1.

CREATE MENU (Comando)


En Visual FoxPro y en FoxPro, abre el Diseador de mens. Sintaxis CREATE MENU [NombreArchivo | ?] [NOWAIT] [SAVE] [WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN] Argumentos NombreArchivo Especifica el nombre de archivo de la tabla de mens. Si no se incluye ninguna extensin con el nombre de la tabla, Visual FoxPro le asignar automticamente una extensin .MNX. ? Muestra el cuadro de dilogo Crear que le pide que asigne un nombre para el men que va a crear. NOWAIT Contina la ejecucin del programa despus de que se abra el Diseador de mens. El programa no espera a que se cierre el Diseador de mens, sino que contina la ejecucin de la lnea de programa que sigue inmediatamente a la que contiene CREATE MENU NOWAIT. Si omite NOWAIT, al emitir CREATE MENU dentro de un programa se abrir el Diseador de mens y la ejecucin del programa se detendr hasta que se cierre el Diseador de mens. Si emite CREATE MENU desde la ventana Comandos e incluye NOWAIT, no aparecer el cuadro de dilogo Nuevo men. El cuadro de dilogo Nuevo men le permite especificar el tipo de men creado (estndar o emergente). SAVE Deja abierto el Diseador de mens despus de activar otra ventana. Si omite SAVE, el Diseador de mens se cerrar cuando se active otra ventana. Incluir SAVE no ejerce ningn efecto cuando se emite desde la ventana Comandos. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas asume el Diseador de mens. Por ejemplo, si la ventana est creada con la opcin FLOAT de DEFINE WINDOW, el Diseador de mens podr desplazarse. La ventana no necesita estar activa o visible, pero necesita estar definida. El Diseador de mens tiene un tamao predeterminado que puede ser mayor que la ventana de la que toma sus caractersticas. En este caso, el Diseador de mens asume no obstante las caractersticas de la ventana en la que se sita. La esquina superior izquierda del Diseador de mens se sita en las mismas coordenadas que la esquina superior izquierda de la ventana y puede extenderse ms all de los bordes de la ventana. IN [WINDOW] NombreVentana2 Especifica una ventana primaria dentro de la cual se abre el Diseador de mens. El Diseador de mens no asume las caractersticas de esta ventana primaria y no se puede mover fuera de ella. Si la ventana primaria se mueve, el Diseador de mens se mover con ella. 23

La ventana primaria debe estar definida previamente con DEFINE WINDOW y debe estar visible para acceder al Diseador de mens. IN SCREEN Especifica que el Diseador de mens se abre explcitamente en la ventana principal de Visual FoxPro, despus de haberlo situado dentro de una ventana primaria. El Diseador de mens se sita en una ventana primaria incluyendo la clusula IN WINDOW. Comentarios Al emitir CREATE MENU sin argumentos adicionales se abre el Diseador de mens, dentro del cual puede definir un sistema de mens. Temporalmente se asigna el nombre MENU1 a la tabla de definicin de men. Cuando salga del Diseador de mens, puede guardar la definicin de men con un nombre diferente.

CREATE PROJECT (Comando)


Abre el Administrador de proyectos de forma que pueda crear un proyecto. Sintaxis CREATE PROJECT [NombreArchivo | ?] [NOWAIT] [SAVE] [WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN] Argumentos NombreArchivo Especifica el nombre de archivo de la tabla de proyecto.Si no especifica ninguna extensin para este archivo, Visual FoxPro le asignar automticamente la extensin .PJX. ? Muestra el cuadro de dilogo Crear que le pide que asigne un nombre al proyecto que est creando. NOWAIT Contina la ejecucin del programa despus de abrir el Administrador de proyectos. El programa no espera a que se cierre el Administrador de proyectos, sino que contina la ejecucin en la lnea de programa que sigue inmediatamente a la lnea que contiene CREATE PROJECT NOWAIT. Si omite NOWAIT cuando se emite CREATE PROJECT dentro de un programa, el Administrador de proyectos se abrir y la ejecucin del programa se detendr hasta que se cierre el Administrador de proyectos. La inclusin de NOWAIT no ejerce ningn efecto en CREATE PROJECT cuando se emite en la ventana Comandos. SAVE Deja abierto el Administrador de proyectos despus de que se active otra ventana. Si omite SAVE, el Administrador de proyectos se cerrar cuando active otra ventana. La inclusin de SAVE no ejerce ningn efecto cuando se emite desde la ventana Comandos. La inclusin de SAVE no ejerce ningn efecto cuando se emite desde la ventana Comandos. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas asume el Administrador de proyectos. Por ejemplo, si la ventana est creada con la opcin FLOAT de DEFINE WINDOW, el Administrador de proyectos se podr mover. La ventana no necesita estar activa o visible, pero debe estar definida. El Administrador de proyectos tiene un tamao predeterminado que puede ser mayor que el de la ventana cuyas caractersticas toma. En este caso, el Administrador de proyectos asume no obstante las caractersticas de la ventana en la que se sita. La esquina superior izquierda del Administrador de proyectos se sita en las mismas coordenadas que la esquina superior izquierda de la ventana y puede extenderse ms all de los bordes de la ventana. IN [WINDOW] NombreVentana2 Especifica una ventana primaria en la cual se abre el Administrador de proyectos. El Administrador de proyectos no asume las caractersticas de la ventana primaria y no se 24

puede mover fuera de dicha ventana. Si se mueve la ventana primaria, el Administrador de proyectos se mover con ella. La ventana primaria debe estar definida con DEFINE WINDOW y debe estar visible para permitir el acceso al Administrador de proyectos. IN SCREEN Especifica que el Administrador de proyectos se abre explcitamente en la ventana principal de Visual FoxPro, despus de haberlo situado dentro de una ventana primaria. El Administrador de proyectos se sita en una ventana primaria incluyendo la clusula IN WINDOW. Comentarios Un proyecto es una tabla que registra todos los archivos necesarios para crear una aplicacin, as como todas las dependencias, referencias y conexiones entre los archivos. Una tabla de proyecto tiene una extensin .PJX y un archivo memo asociado con una extensin .PJT. En un proyecto, usted especifica todas las piezas necesarias para la aplicacin final, de tal forma que Visual FoxPro le asegura que los archivos compilados se basan en los archivos de origen ms recientes. Una tabla de proyecto puede abrirse con USE y manipularse como cualquier otra tabla de Visual FoxPro. Al emitir el comando CREATE PROJECT sin ningn argumento adicional se abre una nueva el cuadro de dilogo Crear, que le permite especificar un nombre para el proyecto.

CREATE REPORT (Comando)


Abre un informe en el Diseador de informes. Sintaxis CREATE REPORT [NombreArchivo | ?] [NOWAIT] [SAVE] [WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN] Argumentos NombreArchivo Especifica el nombre de archivo para el informe. Si no especifica ninguna extensin para este archivo, Visual FoxPro le asignar automticamente la extensin .FRX. Si ya existe un archivo de informe con ese nombre, se le preguntar si quiere sobrescribir el archivo existente (si SET SAFETY est ON). ? Muestra el cuadro de dilogo Crear que le pide que asigne un nombre al informe que desea crear. NOWAIT Contina ejecutando el programa despus de abrir el Diseador de informes. El programa no espera hasta que se cierre el Diseador de informes, sino que contina su ejecucin en la lnea de programa siguiente a la que contiene CREATE REPORT NOWAIT. Si omite NOWAIT al emitir CREATE REPORT en un programa, Se abrir el Diseador de informes y la ejecucin del programa detendr hasta que cierre el Diseador de informes. La inclusin de NOWAIT no ejerce ningn efecto en CREATE REPORT cuando se emite en la ventana Comandos. SAVE Deja abierto el Diseador de informes despus de activar otra ventana. Si omite SAVE, el Diseador de informes se cerrar cuando se active otra ventana. La inclusin de SAVE no ejerce ningn efecto cuando se emite desde la ventana Comandos. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas tomar el Diseador de informes. Por ejemplo, si la ventana se crea con la opcin FLOAT de DEFINE WINDOW, el Diseador de informes podr moverse. La ventana no necesita estar activa o visible, pero debe estar definida.

25

El Generador de informes tiene un tamao predeterminado que puede ser mayor que la ventana de la que toma sus caractersticas. En este caso, el Diseador de informes asume no obstante las caractersticas de la ventana en la que se sita. La esquina superior izquierda del Diseador de informes se sita en las mismas coordenadas que al esquina superior izquierda de la ventana y puede extenderse ms all de los bordes de la ventana. IN [WINDOW] NombreVentana2 Especifica una ventana primaria en la que se abre el Diseador de informes. El Diseador de informes no asume las caractersticas de la ventana primaria y no se puede mover fuera de ella. Si se mueve la ventana primaria, el Diseador de informes se mover con ella. La ventana primaria debe estar definida previamente con DEFINE WINDOW, y debe estar activa y visible para acceder al Diseador de informes. IN SCREEN Especifica que el Diseador de informes se abre explcitamente en la ventana principal de Visual FoxPro, despus de haberlo situado en una ventana primaria. El Diseador de informes se sita en una ventana primaria incluyendo la clusula IN WINDOW. Comentarios Al emitir CREATE REPORT sin argumentos adicionales se abre un nuevo Diseador de informes. A esta definicin de informe se le asigna el nombre INFORME1. Al salir del Diseador de informes, el sistema le pedir que guarde la definicin de informe con otro nombre distinto. CREATE REPORT puede utilizarse tambin para generar un informe rpido sin abrir el Diseador de informes.

CREATE REPORT - Informe rpido (Comando)


Crea un informe mediante programacin. Sintaxis CREATE REPORT NombreArchivo1 | ? FROM NombreArchivo2 [FORM | COLUMN] [FIELDS ListaCampos] [ALIAS] [NOOVERWRITE] [WIDTH nColumnas] Argumentos NombreArchivo1 Especifica el nombre de archivo para el informe. Si no especifica ninguna extensin para el nombre de archivo, Visual FoxPro le asignar automticamente una extensin .FRX. ? Muestra el cuadro de dilogo Crear que le pide que especifique el nombre del informe que desea crear. FROM NombreArchivo2 Especifica el nombre de la tabla desde la que se crea el informe. La tabla no tiene que estar necesariamente abierta. FORM Especifica que el informe se crea con los campos y sus nombres organizados de arriba abajo en la banda Detalle. COLUMN Especifica que el informe se crea con los campos organizados de izquierda a derecha a lo ancho de la pgina en la banda Detalle. Los nombres de campo se colocan en la banda Encabezado de pgina. Si omite FORM y COLUMN, el informe asumir de forma predeterminada el formato COLUMN. FIELDS ListaCampos Especifica los campos de la tabla que aparecen en el informe. Separe mediante comas los campos de ListaCampos. ALIAS Especifica que el alias de la tabla se agrega a los nombres de campo en el informe. NOOVERWRITE Especifica que un informe existente no se sobrescribir. Si ya existe un informe con el nombre especificado por NombreArchivo1, el informe no se crear. 26

WIDTH nColumnas Especifica el ancho de la pgina del informe, en columnas. Comentarios Esta forma de CREATE REPORT crea un informe rpido sin abrir el Diseador de informes. El informe se crea como si eligiera Informe rpido... en el men Informe. Otra forma de CREATE REPORT, que se trat en el tema anterior, abre el Diseador de informes para permitirle crear un informe de forma interactiva.

CTOD( ) (Funcin)
Convierte una expresin de caracteres en una expresin de fecha. Sintaxis CTOD(cExpresin) Tipos devueltos Date Argumentos cExpresin Especifica una expresin de caracteres para la cual CTOD( ) devuelve un valor de tipo Date. cExpresin debe evaluarse como una fecha vlida entre 1/1/100 y 12/31/9999. El formato predeterminado de cExpresin es mm/dd/aa. Puede utilizar SET DATE y SET CENTURY para cambiar el formato predeterminado. Si no se especifica el siglo al introducir la fecha (como en la expresin de caracteres 1/1/95), se asumir el siglo veinte. Comentarios CTOD( ), la funcin de caracteres a fecha, devuelve un valor de tipo Date a partir de una expresin de caracteres.

DATE( ) (Funcin)
Devuelve la fecha actual del sistema, que est controlada por el sistema operativo. Sintaxis DATE( ) Tipos devueltos Date Comentarios Ningn comando o funcin de Visual FoxPro puede cambiar directamente la fecha del sistema. El formato de la cadena de caracteres que devuelve DATE( ) puede cambiarse mediante SET CENTURY, SET DATE y SET MARK TO.

DAY( ) (Funcin)
Devuelve el nmero del da del mes correspondiente a una expresin de Date o de DateTime dada. Sintaxis

27

DAY(dExpresin | tExpresin) Tipos devueltos Numeric Argumentos dExpresin Especifica una fecha a partir de la cual DAY( ) devuelve un da del mes. dExpresin puede ser un literal de fecha, una variable de memoria de tipo Date, un elemento de matriz o un campo de fecha. tExpresin Especifica una fecha a partir de la cual DAY( ) devuelve un da del mes. dExpresin puede ser un literal de fecha, una variable de memoria de tipo Date, un elemento de matriz o un campo de fecha. Comentarios DAY( ) devuelve un nmero entre 1 y 31.

DEACTIVATE MENU (Comando)


Desactiva una barra de mens definida por el usuario y la quita de la pantalla, pero no quita de la memoria la definicin de la barra de mens. Sintaxis DEACTIVATE MENU NombreMen1 [, NombreMen2 ...] | ALL Argumentos NombreMen1 [, NombreMen2 ...] Especifica los nombres de las barras de mens que se van a desactivar. Puede desactivar un conjunto de barras de mens incluyendo una lista de nombres de barras de mens separados por comas. ALL Desactiva todos los mens activos. Comentarios DEACTIVATE MENU quita una barra de mens activa o un conjunto de barras de mens de la ventana principal de Visual FoxPro o de una ventana definida por el usuario sin quitar de la memoria la definicin de la barra de mens. Una barra de mens puede volver a activarse con ACTIVATE MENU y el nombre de la barra de mens. Sugerencia Si en una aplicacin incluye la barra de mens del sistema (_MSYSMENU), no ser necesario definir, activar ni desactivar la barra de mens. En su lugar, emita SET SYSMENU AUTOMATIC. Para liberar de la memoria una determinada barra de mens o conjunto de barras de mens, utilice RELEASE MENUS. Con CLEAR MENUS o CLEAR ALL puede liberar todas las barras de mens de la memoria. El control del programa vuelve a la lnea de programa que sigue inmediatamente a la lnea que activ la barra de mens a menos que se utilice DEFINE MENU BAR para crear la barra de mens o ACTIVATE MENU NOWAIT para activar la barra de mens.

DECLARE (Comando)
Crea una matriz unidimensional o bidimensional. Sintaxis

28

DECLARE NombreMatriz1 (nFilas1 [, nColumnas1]) [, NombreMatriz2 (nFilas2 [, nColumnas2])] ... Comentarios DECLARE es idntico, en cuanto a operacin y sintaxis, que DIMENSION. Para obtener ms informacin, vea DIMENSION.

DELETE DATABASE (Comando)


Elimina una base de datos del disco. Sintaxis DELETE DATABASE NombreBaseDatos | ? [DELETETABLES] [RECYCLE] Argumentos NombreBaseDatos Especifica el nombre de la base de datos que se va a eliminar del disco. La base de datos que especifique no puede estar abierta. NombreBaseDatos puede incluir la ruta de acceso y el nombre de la base de datos. ? Muestra el cuadro de dilogo Eliminar, en el que puede especificar el nombre de la base de datos que desea eliminar del disco. DELETETABLES Elimina las tablas contenidas en la base de datos del disco, y la base de datos que las contiene. RECYCLE Especifica que no se eliminar del disco inmediatamente la base de datos y que se colocar en la Papelera de reciclaje de Windows 95. Comentarios Utilice siempre DELETE DATABASE para eliminar una base de datos del disco. DELETE DATABASE suprime las referencias a la base de datos de las tablas de la base de datos. Si SET SAFETY est a ON, Visual FoxPro le pregunta si desea eliminar la base de datos especificada. Si SET SAFETY est a OFF, la base de datos se elimina automticamente del disco.

DELETE FILE (Comando)


Elimina un archivo del disco. Sintaxis DELETE FILE [NombreArchivo | ?] [RECYCLE] Argumentos NombreArchivo Especifica el archivo que desea eliminar. NombreArchivo puede contener caracteres comodn tales como * y ?. Por ejemplo, para eliminar archivos de copia de seguridad con la extensin .BAK en el directorio o carpeta actual, emita DELETE FILE *.BAK. ? Muestra el cuadro de dilogo Eliminar en el que puede elegir un archivo para eliminarlo. RECYCLE Especifica que el archivo no se eliminar del disco inmediatamente y que se colocar en la Papelera de reciclaje de Windows 95. Precaucin: Cualquier archivo eliminado con este comando no podr recuperarse. Incluso si especifica SET SAFETY ON, no se le avisar antes de eliminar el archivo.

29

Comentarios Cuando emita DELETE FILE, el archivo que pretenda eliminar no podr estar abierto. El nombre del archivo debe incluir la ruta de acceso si est en una unidad o en un directorio distinto de los predeterminados y debe incluir la extensin del nombre del archivo. El nombre del archivo no puede contener caracteres comodn. Antes de eliminar una tabla de una base de datos, emita REMOVE TABLE con el nombre de la tabla para quitar de la base de datos las referencia a dicha tabla. Si elimina una tabla que tiene asociado un archivo memo .FPT, asegrese de eliminar el archivo memo.

DIMENSION (Comando)
Crea una matriz de variables de una o dos dimensiones. Sintaxis DIMENSION NombreMatriz1(nFilas1 [, nColumnas1]) [, NombreMatriz2(nFilas2 [, nColumnas2])] ... Argumentos NombreMatriz1 Especifica el nombre de la matriz. Pueden crearse mltiples matrices con un nico comando DIMENSION incluyendo nombres adicionales de matrices ( NombreMatriz2, NombreMatriz3, y as sucesivamente). nFilas1 [, nColumnas1] Especifica el tamao de la matriz que se va a crear. Si incluye solamente nFilas1, se crear una matriz de una sola dimensin. Las matrices unidimensionales tienen una columna y nFilas1 filas. Por ejemplo, el comando siguiente crea una matriz unidimensional llamada gaMatrizUno que contiene una columna y diez filas. DIMENSION gaMatrizUno(10) Para crear una matriz de dos dimensiones, incluya tanto nFilas1 y nColumnas1. nFilas1 especifica el nmero de filas de la matriz y nColumnas1 indica el nmero de columnas. El ejemplo siguiente crea una matriz bidimensional llamada gaMatrizDos que contiene dos filas y cuatro columnas: DIMENSION gaMatrizDos(2,4) Debe especificar un tamao para cada matriz creada con DIMENSION. En el ejemplo siguiente se crean tres matrices: gaMatrizUno y gaMatrizDos de los ejemplos anteriores, y una tercera matriz llamada gaMatrizTres: DIMENSION gaMatrizUno(10), gaMatrizDos(2,4), gaMatrizTres(3,3) Para enmarcar las expresiones en DIMENSION o DECLARE puede utilizar tanto parntesis como corchetes. Por ejemplo, los dos comandos siguientes crean matrices idnticas: DIMENSION gaMatrizUno(10), gaMatrizDos[2,4], gaMatrizTres(3,3) DIMENSION gaMatrizUno[10], gaMatrizDos(2,4), gaMatrizTres[3,3] Comentarios DIMENSION es idntica en cuanto a funcionamiento y Sintaxis que DECLARE. Elementos de la matriz El tamao de una matriz determina cuntos elementos podr contener. Cada elemento de la matriz puede almacenar un nico fragmento de informacin. Para determinar cuntos elementos contiene una matriz y cunta informacin puede almacenar, multiplique el nmero de filas(nFilas1) por el nmero de columnas(nColumnas1) de la matriz.

30

Los elementos de la matriz pueden contener cualquier tipo de dato y se inicializan a falso (.F.) cuando se crea la matriz por primera vez. Puede inicializar todos los elementos de una matriz al mismo valor con STORE si SET COMPATIBLE es FOXPLUS u OFF (el valor predeterminado). Por ejemplo: DIMENSION gaMatriz(10,3) STORE 'initial' TO gaMatriz Subndices de la matrizLos elementos de una matriz se referencian mediante sus subndices. Cada elemento de la matriz tiene un subndice numrico nico que lo identifica. Si la matriz es unidimensional, el subndice de un elemento ser igual que su nmero de fila. Por ejemplo, el subndice del elemento de la tercera fila de una matriz unidimensional es 3. Los elementos de las matrices bidimensionales se referencian mediante dos subndices: el primer subndice indica la fila y el segundo indica la columna en la que se encuentra el elemento. Por ejemplo, los subndices del elemento que est en la tercera fila y en la cuarta columna de una matriz bidimensional son 3,4. Si desea ms informacin sobre los ndices de los elementos de una matriz, vea ASUBSCRIPT( ). El subndice o los subndices del primer elemento de una matriz empiezan siempre con 1. Si una matriz es bidimensional, podr referenciarse tambin con un solo subndice. Utilice AELEMENT( ) para devolver el subndice nico del par de subndices de fila y columna de la matriz. Use ASUBSCRIPT( ) para devolver los subndices de fila y columna de un nico subndice. Redimensionamiento de matrices: Puede cambiar el tamao y las dimensiones de una matriz usando de nuevo DIMENSION. El tamao de la matriz puede aumentarse o disminuirse, las matrices unidimensionales pueden convertirse en bidimensionales y las matrices bidimensionales pueden reducirse a una dimensin. Si el nmero de elementos de una matriz se incrementa, se copiar el contenido de todos los elementos de la matriz original a la matriz que se acaba de redimensionar. El resto de los elementos de la matriz se inicializarn con el valor falso (.F.).

DISKSPACE( ) (Funcin)
Devuelve el nmero de bytes disponibles en la unidad de disco predeterminada. Sintaxis DISKSPACE([cNombreVolumen]) Tipos devueltos Numeric Argumentos cNombreVolumen Especifica el nombre de la unidad de disco o del volumen cuyo espacio disponible se va a devolver. Si se omite cNombreVolumen, se devolver el espacio disponible de la unidad de disco o del volumen predeterminados. Comentarios Esta funcin es til para determinar si hay espacio suficiente para hacer copia de seguridad de archivos o para ejecutar comandos tales como SORT que requieren espacio de disco adicional para los archivos de trabajo temporales. La unidad de disco o el volumen predeterminados se especifican con SET DEFAULT. DISKSPACE( ) devuelve -1 si se produce un error en la lectura de la unidad de disco o del volumen. En algunas redes, el valor devuelto por DISKSPACE( ) puede no ser exacto para las unidades de redes grandes.

31

DISPLAY DATABASE (Comando)


Muestra informacin sobre la base de datos actual, o sobre campos, conexiones con nombre, tablas o vistas de la base de datos actual. Sintaxis DISPLAY DATABASE [TO PRINTER [PROMPT] | TO FILE NombreArchivo] [NOCONSOLE] Argumentos TO PRINTER [PROMPT] Dirige la salida desde DISPLAY DATABASE a una impresora. En Visual FoxPro, puede incluir la clusula PROMPT opcional para mostrar un cuadro de dilogo Imprimir antes de comenzar a imprimir. Site PROMPT inmediatamente despus de TO PRINTER. TO FILE NombreArchivo Dirige la salida desde DISPLAY DATABASE al archivo especificado con NombreArchivo. Si ya existe el archivo y SET SAFETY est a ON, Visual FoxPro muestra un mensaje preguntando si desea sobrescribir el archivo. NOCONSOLE Suprime la salida a la ventana principal de Visual FoxPro o a la ventana activa definida por el usuario. Comentarios Utilice DBGETPROP( ) para devolver informacin adicional sobre la base de datos actual.

DISPLAY STRUCTURE (Comando)


Muestra la estructura de un archivo de tabla. Sintaxis DISPLAY STRUCTURE [IN nreaTrabajo | cAliasTabla] [TO PRINTER [PROMPT] | TO FILE NombreArchivo] [NOCONSOLE] Argumentos IN nreaTrabajo | cAliasTabla Muestra la estructura de la tabla en un rea de trabajo distinta de la actual. nreaTrabajo especifica el nmero de rea de trabajo y cAliasTabla especifica el alias de la tabla. TO PRINTER [PROMPT] Dirige la salida de DISPLAY STRUCTURE a una impresora. Puede incluir la clusula opcional PROMPT para mostrar un cuadro de dilogo antes de que comience la impresin. En este cuadro de dilogo, puede ajustar la configuracin de la impresora, incluyendo el nmero de copias y los nmeros de las pginas que desea imprimir. Los valores de impresora que puede ajustar dependen del controlador de impresora instalado actualmente. Site la palabra clave PROMPT justo despus de TO PRINTER. TO FILE NombreArchivo Dirige la salida desde DISPLAY STRUCTURE hasta el archivo especificado con NombreArchivo. Si el archivo ya existe y SET SAFETY est a ON, el sistema le preguntar si desea sobrescribirlo. NOCONSOLE Suprime la salida hacia la ventana principal de Visual FoxPro o hacia la ventana definida por el usuario activa. Comentarios 32

Utilice DISPLAY STRUCTURE para mostrar la estructura de campos de una tabla. El nombre de cada campo de la tabla se muestra con su tipo ancho. Si un campo es de tipo Numeric, Double o Float, se mostrar el nmero de decimales del campo. Tambin se muestra el soporte de valores nulos para cada campo. DISPLAY STRUCTURE tambin muestra el nmero actual de registros en la tabla y la fecha de la ltima actualizacin. Si la tabla tiene asociado un campo memo, se mostrar el ancho de bloque del campo memo. Tambin se muestra el ancho total de todos los campos, como aparece en la pgina de cdigos de la tabla. La tabla puede tener un ndice compuesto estructural que se abre con la tabla. Si una etiqueta de un ndice compuesto estructural tiene el mismo nombre que un campo de la tabla y est indexada por ese campo, el orden de la etiqueta (ascendente o descendente) se mostrar junto al nombre del campo. Si usa SET FIELDS para limitar el acceso a los campos de la tabla, aparecer un corchete angular (>) junto a los nombres de los campos a los que se pueda acceder.

DO (Comando)
Ejecuta un programa o un procedimiento de Visual FoxPro. Sintaxis DO NombrePrograma1 | NombreProcedimiento [IN NombrePrograma2] [WITH ListaParmetros] Argumentos NombrePrograma1 Especifica el nombre del programa que se va a ejecutar. Si no incluye ninguna extensin con el nombre del programa a ejecutar, Visual FoxPro buscar y ejecutar las versiones del programa en el siguiente orden: .EXE (la versin ejecutable) .APP (una aplicacin) .FXP (la versin compilada) .PRG (el programa)

Para utilizar DO con el fin de ejecutar un determinado programa de men, programa de formulario o consulta, deber incluir su extensin (.MPR, .SPR o .QPR). NombreProcedimiento Especifica el nombre de un procedimiento que se va a ejecutar. Visual FoxPro buscar el procedimiento primero en el programa que se est ejecutando en este momento. Si el procedimiento no est all, lo buscar en los archivos de procedimientos abiertos con SET PROCEDURE. Puede incluir la clusula IN NombrePrograma2 para indicar a Visual FoxPro que busque el procedimiento en el archivo especificado. Es posible que mltiples procedimientos de una versin ejecutable (.EXE) o de una aplicacin (.APP) tengan el mismo nombre. Cuando utilice DO para iniciar un procedimiento en una versin ejecutable o en una aplicacin, Visual FoxPro solamente buscar el procedimiento indicado en el programa principal de la versin ejecutable o de la aplicacin. IN NombrePrograma2 Especifica el archivo de programa que contiene el procedimiento que se va a ejecutar. Cuando se localiza el archivo, se ejecuta el procedimiento. Si el archivo de programa no se encuentra, aparecer el mensaje El archivo no existe. Si se encuentra el archivo de programa pero no se encuentra el procedimiento especificado en el archivo de programa, aparecer el mensaje Procedimiento no encontrado. 33

WITH ListaParmetros Especifica los parmetros que se desean transferir al programa o procedimiento. Los parmetros indicados en ListaParmetros pueden ser expresiones, variables de memoria, literales, campos o funciones definidas por el usuario. De forma predeterminada, los parmetros se transfieren a los programas por referencia. Puede transferir un parmetro por valor incluyndolo entre parntesis. Vea SET UDFPARMS para obtener una explicacin de la transferencia de parmetros por valor o por referencia. El nmero mximo de parmetros que puede transferir a un programa o procedimiento es 27. Para obtener ms informacin acerca de la transferencia de parmetros, vea LPARAMETERS y PARAMETERS. Comentarios DO ejecuta un programa o procedimiento de Visual FoxPro dentro de un archivo de programa o de procedimientos. Un archivo de programa puede contener comandos DO adicionales, permitindole anidar comandos DO hasta 128 niveles. Cuando utilice DO para ejecutar un programa, los comandos que contenga el archivo de programa se ejecutarn hasta que ocurra alguno de los casos siguientes: Se encuentre RETURN. Se ejecute CANCEL. Se emita otro DO. Se alcance el final del archivo. Se ejecute QUIT.

Cuando termina la ejecucin de un programa, se devuelve el control a uno de los siguientes: El programa que hace la llamada. La ventana Comandos. El sistema operativo.

Si elige Ejecutar del men Programa y ejecuta un programa en un directorio o una ruta de acceso distintos del directorio o la ruta de acceso actuales, Visual FoxPro cambiar automticamente el directorio y la unidad predeterminados al directorio y la unidad que contienen el programa. Si elige Ejecutar del men Programa y ejecuta un programa en un directorio o una ruta de acceso distintos del directorio o la ruta de acceso actuales, Visual FoxPro cambiar automticamente el directorio y la unidad predeterminados al directorio y la unidad que contienen el programa.

DO CASE ... ENDCASE (Comando)


Ejecuta el primer conjunto de comandos cuya expresin condicional se evala como verdadera (.T.). Sintaxis DO CASE CASE lExpresin1 Comandos [CASE lExpresin2 Comandos ... CASE lExpresinN Comandos] [OTHERWISE Comandos] ENDCASE Argumentos

34

CASE lExpresin1 Comandos ... Cuando se encuentre la primera expresin CASE verdadera (.T.), se ejecutar el conjunto de comandos que haya a continuacin. La ejecucin del conjunto de comandos continuar hasta encontrar la siguiente CASE o ENDCASE. La ejecucin se reanuda en el comando que hay inmediatamente a continuacin de ENDCASE. Si una expresin CASE es falsa (.F.), se pasar por alto el conjunto de comandos que le siguen hasta la siguiente clusula CASE. Solamente se ejecuta un conjunto de comandos, que ser aqul cuya expresin CASE se evale como verdadera (.T.). Se pasan por alto todas las expresiones CASE posteriores que sean verdaderas (.T.). OTHERWISE Comandos Si todas las expresiones CASE se evalan como falsas (.F.), OTHERWISE determinar si se ejecuta otro conjunto de comandos adicional. Si incluye OTHERWISE, se ejecutar el conjunto de comandos que sigue a OTHERWISE y la ejecucin saltar al primer comando que hay a continuacin de ENDCASE. Si omite OTHERWISE, la ejecucin saltar al primer comando que hay a continuacin de ENDCASE. Comentarios DO CASE se utiliza para ejecutar un conjunto de comandos de Visual FoxPro dependiendo del valor de una expresin lgica. Cuando se ejecuta DO CASE, se evalan cada una de las expresiones lgicas sucesivas; los valores de las expresiones determinan el conjunto de comandos que se ejecuta. Se admiten comentarios despus de DO CASE y ENDCASE, incluyndolos en la misma lnea. Estos comentarios se pasan por alto durante la compilacin y ejecucin del programa.

DO FORM (Comando)
Ejecuta un formulario o un conjunto de formularios compilado que se ha creado con el Diseador de formularios. Sintaxis DO FORM NombreFormulario | ? [NAME NombreVariableMemoria [LINKED]] [WITH cListaParmetros] [TO NombreVariableMemoria] [NOREAD] [NOSHOW] Argumentos NombreFormulario Especifica el nombre del formulario o conjunto de formularios que se van a ejecutar. ? Muestra el cuadro de dilogo Ejecutar, en el que podr elegir un formulario o un conjunto de formularios para ejecutar. NAME NombreVariableMemoria [LINKED] Especifica una variable o un elemento de matriz con el que puede hacer referencia al formulario o al conjunto de formularios. Si especifica una variable que no existe, Visual FoxPro la crea automticamente. Si especifica un elemento de matriz, la matriz debe existir antes de que emita DO FORM. Si ya existe la variable o el elemento de matriz que especifica, se sobrescribe su contenido. Si omite la clusula NAME, Visual FoxPro crea una variable de memoria de tipo Object con el mismo nombre que el archivo del formulario o el conjunto de formularios. Incluya LINKED para vincular el formulario a la variable asociada con l, de forma que se libere el formulario cuando la variable est fuera de alcance. Si no incluye LINKED, un formulario podr seguir activo, incluso si no tiene ninguna variable de objeto asociada a l.

35

WITH cListaParmetros Especifica los parmetros que se transfieren al formulario o al conjunto de formularios. Si se ejecuta un formulario, los parmetros se transfieren al mtodo Init del mismo. Si se ejecuta un conjunto de formularios, los parmetros se transfieren al mtodo Init del conjunto de formularios si la propiedad WindowType del conjunto de formularios est establecida como Sin modo (0) o Modal (1). Los parmetros se transfieren al mtodo Setup1 si la propiedad WindowType del conjunto de formularios est establecida como Lectura (2) o Lectura modal (3). TO NombreVariableMemoria Especifica una variable para contener un valor devuelto del formulario. Si la variable no existe, Visual FoxPro la crea automticamente. Use el comando RETURN en el procedimiento de evento Unload del formulario para especificar el valor devuelto. Si no incluye un valor de retorno, se devolver el valor predeterminado de verdadero (.T.). Para poder usar TO, la propiedad WindowType del formulario debe estar establecida como 1 (Modal). NOREAD Especifica que el conjunto de formularios se crea y se muestra, aunque los controles no se activan hasta que se ejecuta READ. NOREAD se pasa por alto si la propiedad WindowType del objeto FormSet no est establecida como 2 (Lectura). NOSHOW Especifica que no se llame al mtodo Show del formulario cuando se est ejecutando el formulario. Al incluir NOSHOW y ejecutar el formulario, el formulario no estar visible hasta que se establezca a verdadero (.T.) la propiedad Visible del formulario o hasta que se llame al mtodo Show del formulario. Comentarios DO FORM ejecuta el mtodo Show para el formulario o el conjunto de formularios.

DO WHILE ... ENDDO (Comando)


Ejecuta un conjunto de comandos dentro de un bucle condicional. Sintaxis DO WHILE lExpresin Comandos [LOOP] [EXIT] ENDDO Argumentos lExpresin Especifica una expresin lgica cuyo valor determina si se debe ejecutar el conjunto de comandos incluido entre DO WHILE y ENDDO. Siempre que lExpresin se evale como verdadera (.T.), el conjunto de comandos se ejecutar. Comandos Especifica el conjunto de comandos de Visual FoxPro que se ejecutan siempre y cuando lExpresin se evale como verdadera (.T.). LOOP Devuelve el control del programa directamente a DO WHILE. LOOP se puede situar en cualquier lugar entre DO WHILE y ENDDO. EXIT Transfiere el control del programa desde el interior del bucle DO WHILE hasta el primer comando situado detrs de ENDDO. EXIT puede situarse en cualquier lugar entre DO WHILE y ENDDO. Comentarios Un conjunto de comandos situados entre DO WHILE y ENDDO se ejecuta siempre y cuando la expresin lgica <expL> sea verdadera (.T.). Una instruccin DO WHILE debe tener su correspondiente instruccin ENDDO. 36

Puede situar comentarios despus de DO WHILE y ENDDO en la misma lnea. Los comentarios se pasan por alto al compilar y ejecutar el programa.

DOW( ) (Funcin)
Devuelve el nmero del da de la semana a partir de una expresin Date o DateTime dada. Sintaxis DOW(dExpresin | tExpresin [, nPrimerDaSemana]) Tipos devueltos Numeric Argumentos dExpresin Especifica la expresin Date a partir de la cual DOW( ) devuelve el nmero del da. tExpresin Especifica la expresin DateTime a partir de la cual DOW( ) devuelve el nmero de da. nPrimerDaSemana Especifica el primer da de la semana. nPrimerDaSemana puede ser uno de los valores siguientes. nPrimerDaSemana 0 Descripcin DOW( ) usa el da que est seleccionado actualmente en el cuadro de lista "La semana comienza en", que aparece en la ficha Regional del cuadro de dilogo Opciones. Domingo. Es el valor predeterminado cuando se omite nPrimerDaSemana y es el primer da de la semana usado en versiones anteriores de FoxPro. Lunes Martes Mircoles Jueves Viernes Sbado

1 2 3 4 5 6 7

DTOC( ) (Funcin)
Devuelve una fecha de tipo Character a partir de una expresin de tipo Date o DateTime. Sintaxis DTOC(dExpresin | tExpresin [, 1]) Tipos devueltos Character Argumentos dExpresin Especifica una variable de memoria, un elemento de matriz o un campo de tipo Date para los que DTOC( ) devuelve una fecha de tipo Character. tExpresin Especifica una variable de memoria, un elemento de matriz o un campo de tipo DateTime para los cuales DTOC( ) devuelve una fecha de tipo Character. 1 Devuelve la fecha en un formato adecuado para la indexacin. Esto es particularmente til para mantener los registros de la tabla en secuencia cronolgica.

37

Por ejemplo, para ordenar los registros de la tabla por orden de entrada, podr utilizar este comando: INDEX ON DTOC(gdFechaFact, 1) + gnHoraFact TAG IndHora gdFechaFact y gnIndHora son los campos que contienen la fecha y la hora de la introduccin de los datos en el registro. Comentarios DTOC( ) devuelve una cadena de caracteres correspondiente a la expresin de Date o de DateTime. El formato de fecha viene determinado por SET CENTURY y SET DATE.

EOF( ) (Funcin)
Determina si el puntero de registro est situado o no ms all del ltimo registro de la tabla actual o especificada. Sintaxis EOF([nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos nreaTrabajo Especifica el nmero de rea de trabajo de la tabla. cAliasTabla Especifica el alias de la tabla. EOF( ) devuelve falso (.F.) si no est abierta una tabla en un rea de trabajo que especifique. Si no especifica un alias de rea de trabajo, se probar la condicin de final de archivo en la tabla abierta en el rea de trabajo seleccionada. Comentarios EOF( ) devuelve verdadero (.T.) si el puntero de registro alcanza el final del archivo de tabla (EOF). El final de la tabla se alcanza cuando el puntero del registro transfiere el ltimo registro de la tabla. Por ejemplo, cuando se emite FIND, LOCATE o SEEK sin xito, Visual FoxPro mueve el puntero de registro hasta despus del ltimo registro, y EOF( ) devuelve verdadero (.T.). EOF( ) devuelve falso (.F.) si el puntero del registro no est al final de la tabla.

ERASE (Comando)
Borra un archivo del disco. Sintaxis ERASE NombreArchivo | ? [RECYCLE] Argumentos NombreArchivo Especifica el archivo que se va a borrar. Debe incluir la extensin del archivo. Incluye la ruta de acceso con el nombre del archivo si el archivo est en una unidad o en un directorio de los actuales unidad o directorio. NombreArchivo puede contener caracteres comodn como * y ?. Por ejemplo, para borrar archivos de copia de seguridad con ERASE *.BAK. ? Muestra el cuadro de dilogo Eliminar, donde puede elegir un archivo que desee borrar. 38

RECYCLE Especifica que el archivo no se elimine inmediatamente del disco y lo coloca en la Papelera de reciclaje de Windows

EXIT (Comando)
Sale de un bucle DO WHILE, FOR o SCAN. Sintaxis EXIT Comentarios EXIT transfiere el control desde dentro de un bucle DO WHILE ... ENDDO, FOR ... ENDFOR, o SCAN ... ENDSCAN al comando que sigue inmediatamente a ENDDO, ENDFOR, o ENDSCAN.

FLOCK( ) (Funcin)
Intenta bloquear la tabla actual o especificada. Sintaxis FLOCK([nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos nreaTrabajo Especifica el rea de trabajo de la tabla que FLOCK( ) intenta bloquear. FLOCK( ) devuelve falso (.F.) si no hay ninguna tabla abierta en el rea de trabajo especificada. cAliasTabla Especifica el alias de la tabla que FLOCK( ) intenta bloquear. Visual FoxPro genera un mensaje de error si especifica un alias de tabla que no existe. Comentarios FLOCK( ) devolver verdadero (.T.) si logra bloquear la tabla y devolver falso (.F.) si la tabla o algn registro de la tabla ya estn bloqueados por otro usuario. Si omite los argumentos opcionales, FLOCK( ) intenta bloquear la tabla abierta en el rea de trabajo seleccionada actualmente. Nota: Si FLOCK( ) falla al bloquear una tabla, devolver falso (.F.) y no generar un error. Por tanto, no puede utilizar FLOCK( ) para activar una rutina ON ERROR. Cuando se bloquea una tabla, la tabla estar disponible tanto para lectura como para escritura para el usuario que ha efectuado el bloqueo. Los otros usuarios de la red tendrn acceso de slo lectura sobre la tabla. Para ms informacin sobre como bloquear una tabla e impedir el acceso a ella a otros usuarios, vea SET EXCLUSIVE y USE. Una tabla permanece bloqueada hasta que sea desbloqueada por el usuario que efectu el bloqueo. La tabla puede desbloquearse emitiendo UNLOCK, cerrando la tabla o saliendo de Visual FoxPro. Las tablas pueden cerrarse con USE, CLEAR ALL o CLOSE DATABASES. De forma predeterminada, FLOCK( ) intenta bloquear una tabla una vez. Utilice SET REPROCESS para reintentar bloquear automticamente una tabla cuando falle el primer intento. SET REPROCESS determina el nmero de intentos de bloqueo, o el periodo de tiempo durante el que se intentar efectuar 39

el bloqueo, si fracasa el intento de bloqueo inicial. Para obtener ms informacin al respecto, vea SET REPROCESS. Puede establecer relaciones entre dos o ms tablas con SET RELATION. Al efectuar un bloqueo sobre una tabla que est relacionada con una o ms tablas no se efectuar un bloqueo de archivo sobre las tablas relacionadas. Debe situar y quitar explcitamente los bloqueos de las tablas relacionadas.

FLUSH (Comando)
Guarda en el disco las modificaciones de las tablas y los ndices. Sintaxis FLUSH Comentarios FLUSH asegura que las modificaciones hechas a todas las tablas y los ndices abiertos se guardan en el disco. Visual FoxPro guarda automticamente en el disco los cambios hechos cuando: Cierra una tabla con USE o CLOSE DATABASES. Solamente se guardar en el disco la informacin del archivo o archivos que cierre. Desbloquea un registro o un archivo. nicamente se guardar en el disco la informacin del registro o el archivo desbloqueado.

FOR ... ENDFOR (Comando)


Ejecuta un grupo de comandos un nmero concreto de veces. Sintaxis FOR NombreVariableMemoria = nValorInicial TO nValorFinal [STEP nIncremento] Comandos [EXIT] [LOOP] ENDFOR | NEXT Argumentos NombreVariableMemoria Especifica una variable de memoria o un elemento de matriz que acta como contador. No es necesario que exista la variable de memoria o elemento de matriz antes de ejecutar FOR ... ENDFOR. nValorInicial TO nValorFinal nValorInicial es el valor inicial del contador y; nValorFinal es el valor final del contador. STEP nIncremento nIncremento es la cantidad de incremento o decremento del contador. Si nIncremento es negativo, el contador se decrementar. Si omite la clusula STEP, el contador se incrementar en 1. Comandos Especifica los comandos de Visual FoxPro que se van a ejecutar. Comandos puede incluir cualquier nmero de comandos. EXIT Transfiere el control desde dentro del bucle FOR ... ENDFOR al comando que sigue inmediatamente a ENDFOR. Puede situar EXIT en cualquier parte entre FOR y ENDFOR. LOOP La inclusin de LOOP devolver el control directamente a la clusula FOR sin ejecutar las instrucciones que haya entre LOOP y ENDFOR. El contador se incrementar o decrementar como si se hubiera llegado a ENDFOR. LOOP puede situarse en cualquier parte entre FOR y ENDFOR.

40

Comentarios Se utiliza una variable de memoria o un elemento de matriz como contador para especificar cuntas veces se ejecutan los comandos de Visual FoxPro que hay dentro del bucle FOR ... ENDFOR. Los comandos de Visual FoxPro que hay a continuacin de FOR se ejecutan hasta que se llega a ENDFOR o NEXT. Entonces se incrementa el contador NombreVariableMemoria con el valor de nIncremento. Si omite la clusula STEP, el contador se incrementar en 1. Entonces se comparar el contador con el valor final nValorFinal. Si el contador es inferior o igual al valor final nValorFinal, volvern a ejecutarse los comandos que siguen a la clusula FOR. Si el contador es mayor que el valor final nValorFinal, la ejecucin del programa bifurcar fuera del bucle FOR ... ENDFOR y continuar con el primer comando a continuacin de ENDFOR o NEXT. Nota: Los valores de nValorInicial, nValorFinal, y nIncremento se leen nicamente al inicio. Sin embargo, cambiar el valor del contador NombreVariableMemoria dentro del bucle afecta al nmero de veces que se ejecutar el bucle. Si el valor de nIncremento es negativo y el valor inicial nValorInicial es mayor que el valor final nValorFinal, el contador disminuir cada vez que pase el bucle.

FOUND( ) (Funcin)
Devuelve verdadero (.T.) si CONTINUE, FIND, LOCATE o SEEK tienen xito. Sintaxis FOUND([nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos nreaTrabajo Especifica el rea de trabajo de la tabla para la cual FOUND( ) devuelve un valor indicando el xito del ltimo CONTINUE, FIND, LOCATE o SEEK. FOUND( ) devolver falso (.F.) si una tabla no est abierta en el rea de trabajo especificada. cAliasTabla Especifica el alias de la tabla para la cual FOUND( ) devuelve un valor indicando el xito del ltimo CONTINUE, FIND, LOCATE o SEEK. Visual FoxPro genera un mensaje de error si especifica un alias de tabla que no existe. Comentarios FOUND( ) devuelve un valor lgico que indica si el comando CONTINUE, FIND, LOCATE o SEEK ejecutado ms recientemente se ejecut con xito o el puntero se mueve en la tabla relacionada. FOUND( ) devuelve verdadero (.T.) si la bsqueda tiene xito, de lo contrario devuelve falso (.F.). Si omite los argumentos opcionales, FOUND( ) devuelve un valor indicando el xito del ltimo CONTINUE, FIND, LOCATE o SEEK para la tabla abierta en el rea de trabajo seleccionada actualmente. Sugerencia: Esta funcin es til para determinar si una tabla secundaria tiene un registro que coincide con el registro primario.

FUNCTION (Comando)
Identifica el comienzo de una definicin de funcin definida por el usuario. Sintaxis

41

FUNCTION NombreArchivo Comandos [RETURN [eExpresin]] ENDFUNC Argumentos NombreFuncin En Visual FoxPro, los nombres de funcin pueden tener una longitud mxima de 254 caracteres. Para distinguir un archivo de programa con ms de 10 caracteres de una funcin comenzando por los mismos 10 caracteres en estos dos productos, entrecomille el nombre del archivo o incluya una extensin despus del nombre del archivo de programa. Comentarios En muchos programas, se repiten con frecuencia ciertas rutinas. Al definir las rutinas utilizadas comnmente como funciones separadas se reduce el tamao y la complejidad del programa y se facilita el mantenimiento del programa. FUNCTION NombreFuncin es una instruccin dentro de un programa. Designa el comienzo de una funcin en un programa e identifica la funcin por su nombre. FUNCTION NombreFuncin va seguido de una serie de comandos de Visual FoxPro que constituyen la funcin. Puede incluir va seguido de una serie de comandos de Visual FoxPro que constituyen la funcin. Puede incluir RETURN en cualquier parte de la funcin para devolver el control al programa que llama o a otro programa, y para definir un valor devuelto por la funcin definida por el usuario. Si no incluye un comando RETURN, se ejecutar un RETURN implcito cuando salga de la funcin. Si el comando RETURN no incluye el valor devuelto (o si se ejecuta un RETURN implcito), Visual FoxPro asigna .T. (Verdadero) como el valor devuelto. La funcin termina con el comando ENDFUNC. Este comando es opcional; la funcin se termina cuando encuentra otro comando FUNCTION, un comando PROCEDURE, o el final del archivo de programa. Se puede colocar comentarios en la misma lnea despus de FUNCTION y ENDFUNC. Estos comentarios se ignorarn durante la compilacin y la ejecucin del programa. No puede tener cdigo de programa ejecutable normal incluido en un archivo de programa despus de funciones definidas por el usuario; slo las funciones definidas por el usuario, los procedimientos y las definiciones de clase pueden ir a continuacin del primer comando FUNCTION o PROCEDURE en el archivo. Cuando se ejecute una funcin con DO, Visual FoxPro buscar la funcin en un orden especfico: 1. Visual FoxPro buscar en el archivo que contiene el comando DO. 2. Si la funcin no se encuentra all, Visual FoxPro buscar en los archivos de procedimientos abiertos. Los archivos de procedimientos se abren con SET PROCEDURE. 3. Si la funcin no se encuentra en un archivo de procedimiento abierto, Visual FoxPro buscar los programas en la cadena de ejecucin. Los archivos de programa se buscarn empezando por el archivo ejecutado ms recientemente hasta el primer programa que se ejecut. 4. Si sigue sin encontrarse la funcin, Visual FoxPro buscar un programa autnomo. Si se encuentra un nombre de archivo de programa que coincida, se ejecutar el programa. En caso contrario, Visual FoxPro se generar un mensaje de error. Incluya la clusula IN en DO para ejecutar una funcin en un archivo especfico. Los parmetros se pasan a las funciones, de forma predeterminada, por valor. Para obtener informacin sobre la transferencia de parmetros a funciones por referencia, vea SET UDFPARMS. A una funcin 42

pueden pasrsele un mximo de 27 parmetros. Se pueden pasar parmetros a una funcin incluyendo la instruccin PARAMETERS o LPARAMETERS en la funcin, o colocando una lista de parmetros inmediatamente despus de FUNCTION NombreFuncin. Ponga la lista de parmetros entre parntesis, y separe los parmetros con comas.

GATHER (Comando)
Sustituye los datos del registro actual de la tabla seleccionada actualmente por datos de una matriz, un conjunto de variables de memoria o un objeto. Sintaxis GATHER FROM NombreMatriz | MEMVAR | NAME NombreObjeto [FIELDS ListaCampos | FIELDS LIKE Estructura | FIELDS EXCEPT Estructura] [MEMO] Argumentos FROM NombreMatriz Especifica la matriz cuyos datos reemplazan los datos del registro actual. El contenido de los elementos de la matriz, comenzando con el primer elemento, reemplazan el contenido de los campos correspondientes del registro. El contenido del primer elemento de la matriz reemplaza al primer campo del registro; el contenido del segundo elemento de la matriz reemplaza al segundo campo y as sucesivamente. Si la matriz tiene menos elementos que campos tiene la tabla, se pasarn por alto los campos adicionales. Si la matriz tiene ms elementos que campos tiene la tabla, se pasarn por alto el resto de elementos de la matriz. MEMVAR Especifica las variables de memoria o la matriz desde las que se copian datos al registro actual. Los datos se transfieren desde la variable de memoria hasta el campo que tenga el mismo nombre que dicha variable. El contenido de un campo no se sustituye en caso de que no exista ninguna variable de memoria con el mismo nombre que el campo. Sugerencia: Puede crear variables con los mismos nombres que los campos incluyendo MEMVAR o BLANK en SCATTER. NAME NombreObjeto Especifica un objeto cuyas propiedades tienen los mismos nombres que los campos de la tabla. El contenido de cada campo se sustituye por el valor de la propiedad que tenga los mismos nombres que los campos. El contenido de un campo no se sustituye si no existe ninguna propiedad con su mismo nombre. FIELDS ListaCampos Especifica los campos cuyo contenido se sustituye por el contenido de los elementos de la matriz o las variables de memoria. Solamente se sustituir el contenido del campo especificado con ListaCampos. FIELDS LIKE Estructura | FIELDS EXCEPT Estructura Puede reemplazar selectivamente campos con el contenido de elementos de matriz o variables de memoria si incluye la clusula LIKE o EXCEPT, o ambas. Si incluye LIKE Estructura, Visual FoxPro reemplazar los campos que coincidan con Estructura. Si incluye EXCEPT Estructura, reemplazar todos los campos excepto los que coincidan con Estructura. Estructura acepta caracteres comodn (* y ?). Por ejemplo, para reemplazar todos los campos que empiecen por las letras A y P, use: GATHER FROM gamiarray FIELDS LIKE A*,P* MEMO Especifica que el contenido de los campos memo se sustituye por el contenido de los elementos de la matriz o de las variables de memoria. Si omite MEMO, los campos memo se saltarn cuando GATHER reemplace el contenido de los campos con el contenido de una matriz o de variables de memoria. Los campos de tipo General y Picture se pasan por alto siempre en GATHER, incluso si se incluye la palabra clave MEMO.

43

GO | GOTO (Comando)
Coloca el puntero de registro en el nmero de registro especificado de una tabla. Sintaxis GO [RECORD] nNmeroRegistro [IN nreaTrabajo | IN cAliasTabla] O bien GO TOP | BOTTOM [IN nreaTrabajo | IN cAliasTabla] O bien GOTO [RECORD] nNmeroRegistro [IN nreaTrabajo | IN cAliasTabla] O bien GOTO TOP | BOTTOM [IN nreaTrabajo | IN cAliasTabla] Argumentos RECORD nNmeroRegistro Especifica el nmero de registro fsico al que desea mover el puntero de registro. Puede omitir por completo GO o GOTO y especificar simplemente el nmero de registro. Si especifica solamente el nmero de registro, podr mover el puntero solamente en el rea de trabajo actual. IN nreaTrabajo Especifica el rea de trabajo de la tabla en la cual se mueve el puntero de registro. IN cAliasTabla Especifica el alias de la tabla en la cual se mueve el puntero de registro. TOP Sita el puntero de registro en el primer registro de la tabla. Si la tabla tiene en uso un ndice ascendente, el primer registro ser el registro con el valor clave ms bajo. Si el ndice est en orden descendente, el primer registro ser el registro con el valor clave ms alto. BOTTOM Sita el puntero de registro en el ltimo registro de la tabla. Si la tabla tiene activo un ndice ascendente, el ltimo registro ser aqul con el valor de clave ms elevado. Si el ndice est en orden descendente, el ltimo registro ser el que tenga el menor valor de clave. Comentarios GO y GOTO pueden utilizarse indistintamente. Estos comandos actan sobre la tabla del rea de trabajo actual a menos que especifique otro rea de trabajo con la clusula IN.

HOUR( ) (Funcin)
Devuelve la hora de una expresin DateTime. Sintaxis HOUR(tExpresin) Argumentos tExpresin Especifica una expresin DateTime a partir de la cual HOUR( ) devuelve la hora. Tipos devueltos Numeric Comentarios HOUR( ) devuelve un valor numrico basado en un formato de 24 horas y no se ve afectado por el valor actual de SET HOURS. Por ejemplo, si SET HOURS es 12 24, el comando siguiente devuelve 13: ? HOUR({02/16/95 1:00pm})

IF ... ENDIF (Comando)


44

Ejecuta condicionalmente un conjunto de comandos dependiendo del resultado de una expresin lgica. Sintaxis IF lExpresin [THEN] Comandos [ELSE Comandos] ENDIF Argumentos lExpresin Especifica la expresin lgica evaluada. Si lExpresin da como resultado verdadero (.T.), se ejecutarn cualesquiera instrucciones posteriores a IF y anteriores a ELSE o ENDIF (lo que suceda primero). Si lExpresin es falsa y se incluye ELSE, se ejecutan los comandos situados despus de ELSE y antes de ENDIF. Si lExpresin es falsa (.F.) y no se incluye ELSE, se pasarn por alto todas las instrucciones entre IF y ENDIF. En este caso la ejecucin del programa continuar con la primera lnea de comando a continuacin de ENDIF. Comentarios Puede anidar IF ... ENDIF dentro de otro bloque IF ... ENDIF. Los comentarios precedidos de && se pueden colocar en la misma lnea despus de IF, ELSE y ENDIF. Estos comentarios se pasan por alto durante la compilacin y la ejecucin del programa.

IIF( ) (Funcin)
Devuelve uno de los dos valores dependiendo del valor de una expresin lgica. Sintaxis IIF(lExpresin, eExpresin1, eExpresin2) Tipos devueltos Character, Numeric, Currency, Date, o DateTime Argumentos lExpresin Especifica la expresin lgica evaluada por IIF( ). eExpresin1, eExpresin2 Si lExpresin se evala verdadera (.T.), se devolver eExpresin1. Si lExpresin se evala falsa (.F.), se devolver eExpresin2. Comentarios Esta funcin, conocida tambin como IF Inmediato, evala una expresin lgica y devuelve a continuacin una de las dos expresiones. Si la expresin lgica se evala como verdadera (.T.), IIF( ) devolver la primera expresin. Si la expresin lgica se evala como falsa (.F.), IIF( ) devolver la segunda expresin. Sugerencia: Esta funcin puede utilizarse en lugar de IF ... ENDIF para expresiones condicionales simples y es especialmente til en expresiones de etiquetas e informes que especifican condicionalmente el contenido de campos. La funcin IIF( ) se ejecuta, adems, considerablemente ms rpido que la estructura IF ... ENDIF equivalente.

45

INDEX (Comando)
Crea un archivo de ndice para mostrar los registros de la tabla en orden lgico. Sintaxis INDEX ON eExpresin TO NombreArchivoIDX | TAG NombreEtiqueta [OF NombreArchivoCDX] [FOR lExpresin] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] Argumentos eExpresin La expresin de ndice puede incluir el nombre de un campo o campos de la tabla actual. Una clave de ndice basada en la expresin de ndice se crear en el archivo de ndice para cada registro de la tabla. Visual FoxPro utiliza estas claves para mostrar y acceder los registros de la tabla. Nota: A pesar de que no se recomienda, eExpresin puede ser tambin una variable de memoria, un elemento de una matriz, o un campo o una expresin de campo de una tabla de otra zona de trabajo. Los campos memo no pueden utilizarse solos en las expresiones de ndice; deben combinarse con otras expresiones de tipo Character. Si incluye un campo precedido por una letra de alias de tabla o de rea de trabajo en la expresin de ndice, Visual FoxPro genera un mensaje de error. Aunque puede optimizar las clusulas FOR con la tecnologa Rushmore cuando se incluyen campos con alias, es muy recomendable evitar el uso de campos con alias al crear ndices. En algunos casos (USE ... AGAIN, SQL consultas SQL, etc), se asigna automticamente un alias distinto a una tabla y el ndice puede no actualizarse o utilizarse automticamente. Si intenta crear un ndice con una clave cuya longitud vara, la clave se rellenar con espacios. Visual FoxPro no admite claves de ndice de longitud variable. Es posible crear una clave de ndice de longitud 0. Por ejemplo, una clave de ndice de longitud 0 se crea cuando la expresin de ndice es una subcadena de un campo memo vaco. Una clave de ndice de longitud 0 genera un mensaje de error. Cuando Visual FoxPro crea un ndice, evala los campos del primer registro de la tabla. Si un campo est vaco, quiz sea necesario introducir algunos datos temporales en el campo del primer registro para evitar una clave de ndice de longitud 0. La longitud de una clave de ndice para un ndice .IDX tiene que estar entre 1 y 100 caracteres. La longitud de una clave de ndice para un ndice .CDX tiene que estar entre 1 y 240 caracteres. TO NombreArchivoIDX Crea un archivo de ndice .IDX. Al archivo de ndice se le dar la extensin predeterminada .IDX, que puede no aplicarse si se incluye explcitamente una extensin distinta o cambiando la extensin predeterminada de los ndices en el archivo de configuracin de Visual FoxPro. Al crear archivos de ndice es necesario observar las reglas de denominacin de archivos estndar de MS-DOS. TAG NombreEtiqueta [OF NombreArchivoCDX] Crea un archivo de ndice compuesto. Los archivos de ndice compuesto son archivos de un solo ndice que constan de cualquier cantidad de etiquetas (entradas de ndice) independientes. Cada etiqueta se identifica por su nombre de etiqueta nico. Los nombres de etiqueta deben comenzar con una letra o un subrayado y pueden constar de cualquier combinacin de hasta 10 letras, dgitos o subrayados. El nmero de etiquetas de un archivo de ndice compuesto est limitado nicamente por la memoria y el espacio de disco disponibles. Los archivos de ndice compuesto con varias entradas son siempre compactos. No es necesario incluir COMPACT al crear un archivo de ndice compuesto. Los nombres de los archivos de ndice compuesto tienen la extensin .CDX. Se pueden crear dos tipos de archivos de ndice compuesto: estructural y no estructural.

46

Si se excluye la clusula opcional OF CDXNombreArchivo de TAG NombreEtiqueta, puede crear un archivo de ndice compuesto estructural. Estos archivos de ndice compuesto estructural siempre tienen el mismo nombre base que la tabla y se abren automticamente al abrir la tabla. Si el archivo de ndice compuesto estructural de una tabla no se encuentra, o bien se elimina o cambia de nombre, aparece un cuadro de dilogo al intentar abrir la tabla. Si elige el botn predeterminado Cancelar, la tabla no se abrir. Si elige Ignorar, se abrir la tabla y se quitar el indicador de la cabecera de la tabla que indica la presencia de un archivo de ndice compuesto estructural. Sugerencia: Para volver a asociar un archivo de ndice compuesto estructural que hubiera quedado disociado de su tabla, emita el comando siguiente: USE NombreTabla INDEX NombreArchivoCDX Si se incluye la clusula opcional OF CDXNombreArchivo despus de TAG NombreEtiqueta, crear un archivo de ndice compuesto no estructural. A diferencia de un archivo de ndice compuesto estructural, es necesario abrir un archivo de ndice compuesto explcitamente con la clusula SET INDEX o INDEX en USE. Si un archivo de ndice compuesto ya ha sido creado y abierto, la emisin de INDEX con TAG NombreEtiqueta agrega una etiqueta al archivo de ndice compuesto. NombreArchivoCDX es el nombre del ndice compuesto estructural disociado. Asegrese de volver a indexar la tabla si ha sufrido modificaciones desde el momento en que se disoci el ndice compuesto estructural. FOR lExpresin Especifica una condicin por la cual solamente los registros que satisfacen la expresin de filtro lExpresin estn disponibles para su visualizacin y acceso. Solamente se crean claves de ndice en el archivo de ndice para los registros que coincidan con la expresin de filtro. Rushmore optimiza un comando INDEX ... FOR lExpresin si lExpresin es una expresin optimizable. Para obtener el mejor rendimiento, use una expresin optimizable en la clusula FOR. COMPACT Crea un archivo compacto .IDX. ASCENDING Especifica un orden ascendente para el archivo .CDX. De forma predeterminada, las etiquetas .CDX se crean en orden ascendente (puede incluir ASCENDING como recordatorio del orden del archivo de ndice). Una tabla puede indexarse en orden inverso incluyendo DESCENDING. DESCENDING Especifica un orden descendente para el archivo .CDX. No se permite incluir DESCENDING durante la creacin de archivos de ndice .IDX. Puede, no obstante, especificar un orden descendente para un archivo de ndice .IDX con SET INDEX y SET ORDER. UNIQUE Especifica que solamente se incluir en un archivo .IDX o en una etiqueta .CDX el primer registro encontrado que tenga un valor de clave de ndice determinado. UNIQUE puede servir para evitar la visualizacin o el acceso a registros duplicados. Todos los registros que se aadan con claves de ndice duplicadas se excluirn del archivo de ndice. Utilizar la opcin UNIQUE de INDEX es lo mismo que ejecutar SET UNIQUE ON antes de emitir INDEX o REINDEX. Cuando est activo un ndice UNIQUE o una etiqueta nica y se cambia un registro duplicado de tal forma que cambie la clave ndice, se actualizar el ndice o la etiqueta de ndice. Sin embargo, el siguiente registro duplicado con la clave ndice ORIGINAL no podr accederse o mostrarse hasta que reindexe el archivo utilizando REINDEX. CANDIDATE Crea una etiqueta de ndice estructural candidato. La palabra clave CANDIDATE solamente se puede incluir en la creacin de una etiqueta de ndice estructural; de lo contrario, Visual FoxPro genera un mensaje de error. Una etiqueta de ndice candidato impide valores duplicados en el campo o la combinacin de campos especificado en la expresin de ndice eExpresin. El trmino candidato hace referencia al tipo de ndice: puesto que los ndices candidatos impiden valores duplicados, estn cualificados como candidatos para transformarse en ndices principales. 47

Visual FoxPro genera un error si crea una etiqueta de ndice candidato para un campo o combinacin de campos que ya contienen valores duplicados. ADDITIVE Mantiene abiertos los archivos de ndice abierta previamente, se cerrarn todos los archivos de ndice abiertos previamente (excepto el ndice compuesto estructural). Si se incluye la palabra clave ADDITIVE, permanecern abiertos los archivos de ndice abiertos previamente. Comentarios Los registros de una tabla que tenga un ndice se muestran y se acceden en el orden especificado por la expresin ndice. Un archivo de ndice no cambia el orden fsico de los registros de la tabla. Si SET TALK est ON, Visual FoxPro le informar de los registros que se estn indexando durante el proceso de indexado. El intervalo de registros que se muestra durante el indexado puede especificarse mediante SET ODOMETER. Si desea informacin sobre los archivos de ndice abiertos, vea DISPLAY STATUS. Esta informacin incluye los nombres de todos los archivos de ndice abiertos, su tipo (estructural, .CDX, .IDX), sus expresiones de ndice y el nombre del archivo de ndice maestro o etiqueta maestra. El nmero de archivos de ndice (.IDX o .CDX) que puede abrir est limitado nicamente por la memoria y los recursos del sistema. En Visual FoxPro y en FoxPro para Windows, el nmero total de archivos que puede abrir est determinado por el ajuste de FILES en el archivo de configuracin CONFIG.SYS de MS-DOS. Tipos de ndice: Visual FoxPro le permite crear dos tipos de archivos de ndice: Archivos de ndice compuesto .CDX que contienen varias entradas de ndice que se denominan etiquetas Archivos de ndice .IDX que contienen una entrada de ndice Tambin puede crear un archivo de ndice compuesto estructural, que se abrir automticamente con la tabla. Sugerencia: Dado que los archivos de ndice compuesto estructurales se abren automticamente cuando se abre la tabla, son los ndices recomendados. Incluya COMPACT para crear archivos de ndice .IDX compactos. Los archivos de ndice compuesto son siempre compactos. Orden y actualizacin de ndices: nicamente un archivo de ndice (el archivo de ndice maestro) o una etiqueta (la etiqueta maestra) controla el orden en el que se muestra o se accede la tabla. Algunos comandos (por ejemplo, SEEK) utilizan el archivo de ndice maestro o la etiqueta maestra para buscar los registros. Sin embargo, todos los archivos de ndice .IDX y .CDX se actualizarn al hacer cambios en la tabla. Puede designar el archivo de ndice maestro o etiqueta maestra con la clusula INDEX de USE o con SET INDEX y SET ORDER. Funciones definidas por el usuario: Aunque una expresin de ndice puede contener una funcin definida por el usuario (FDU), no debe usar funciones definidas por el usuario en una expresin de ndice, ya que aumenta el tiempo necesario para crear o actualizar el ndice. Adems, las actualizaciones del ndice puede que no se realicen cuando se usa una funcin definida por el usuario para una expresin de ndice. Visual FoxPro debe ser capaz de localizar la FDU. Cuando Visual FoxPro crea un ndice, la expresin de ndice se guarda en el archivo de ndice, pero nicamente se incluye una referencia de la FDU en la expresin de ndice.

INT( ) (Funcin)
Evala una expresin numrica y devuelve la parte entera de dicha expresin.

48

Sintaxis INT(nExpresin) Tipos devueltos Numeric Argumentos nExpresin Especifica la expresin numrica cuya parte entera devuelve INT( ).

LASTKEY( ) (Funcin)
Devuelve un nmero entero correspondiente a la ltima tecla presionada. Sintaxis LASTKEY( ) Tipos devueltos Numeric Comentarios Los valores devueltos por LASTKEY( ) son los mismos que devuelve INKEY( ). Vea INKEY( ) para ver una lista de las teclas y sus valores de retorno. LASTKEY( ) se actualiza cuando usted se desplaza entre los controles.

LEFT( ) (Funcin)
Devuelve un nmero especificado de caracteres de una expresin de caracteres, comenzando por el carcter situado ms a la izquierda. Sintaxis LEFT(cExpresin, nExpresin) Tipos devueltos Character Argumentos cExpresin Especifica la expresin de caracteres de la cual LEFT( ) devuelve los caracteres. nExpresin Especifica el nmero de caracteres devueltos desde la expresin de caracteres. Si nExpresin es mayor que la longitud de cExpresin, se devolver toda la expresin. Devuelve la cadena vaca si nExpresin es negativa o si es 0. LEFT( ) es idntica a SUBSTR( ) con una posicin inicial de 1.

LEN( ) (Funcin)
Devuelve el nmero de caracteres de una expresin de caracteres. Sintaxis LEN(cExpresin)

49

Tipos devueltos Numeric Argumentos cExpresin Especifica la expresin de caracteres cuyo nmero de caracteres devuelve LEN( ). Comentarios Use LEN( ) para determinar la longitud de una expresin de caracteres.

LIKE( ) (Funcin)
Determina si una expresin de caracteres coincide con otra expresin de caracteres. Sintaxis LIKE(cExpresin1, cExpresin2) Tipos devueltos Logical Argumentos cExpresin1 Especifica la expresin de caracteres que LIKE( ) compara con cExpresin2. cExpresin1 puede contener caracteres comodn, tales como * y ?. El signo de interrogacin (?) coincide con cualquier carcter nico de cExpresin2 y el asterisco (*) coincide con cualquier nmero de caracteres. Puede mezclar cualquier nmero de caracteres comodn en cualquier combinacin dentro de cExpresin1. cExpresin2 Especifica la expresin de caracteres que LIKE( ) compara con cExpresin1. cExpresin2 debe coincidir con cExpresin1 letra por letra para que LIKE( ) devuelva verdadero (.T.). Comentarios LIKE( ) devuelve verdadero (.T.) si cExpresin1 coincide con cExpresin2; de lo contrario, devuelve falso (.F.). SET COMPATIBLE determina la forma en que LIKE( ) evala cExpresin1 y cExpresin2. Si SET COMPATIBLE est definido como ON o DB4, se eliminarn todos los espacios en blanco finales de cExpresin1 y cExpresin2 antes de compararlos. Si SET COMPATIBLE est definido como OFF o FOXPLUS, en la comparacin se usarn todos los espacios en blanco finales de cExpresin1 y cExpresin2.

LOCATE (Comando)
Busca secuencialmente en la tabla el primer registro que coincide con la expresin lgica especificada. Sintaxis LOCATE FOR lExpresin1 [Alcance] [WHILE] [NOOPTIMIZE] Argumentos FOR lExpresin1 LOCATE busca secuencialmente en la tabla actual el primer registro que coincide con la expresin lgica lExpresin1.

50

Rushmore optimizar una consulta creada con LOCATE FOR si lExpresin1 es una expresin optimizable. Para mejorar el rendimiento, utilice una expresin optimizable en la clusula. Alcance Solamente se buscarn los registros incluidos dentro del intervalo. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nRegistros, RECORD nNmeroRegistro y REST. Los comandos que incluyen Alcance solamente funcionan en la tabla situada en el rea de trabajo activa. El alcance predeterminado de LOCATE es ALL (todos los registros). WHILE lExpresin2 Especifica una condicin por la cual se buscan los registros siempre y cuando la expresin lgica lExpresin2 se evale como verdadera (.T.). NOOPTIMIZE Desactiva la optimizacin Rushmore de LOCATE. Comentarios La tabla no necesita estar indexada. Si LOCATE encuentra un registro coincidente, podr utilizar RECNO( ) para devolver el nmero del registro coincidente. Si se encuentra un registro coincidente, FOUND( ) devolver verdadero (.T.) y EOF( ) devolver falso (.F.). Si SET TALK est ON, se mostrar el nmero del registro coincidente. Despus de que LOCATE encuentre un registro coincidente, puede emitir CONTINUE para buscar registros coincidentes adicionales en el resto de la tabla. Cuando se ejecuta CONTINUE, se reanuda el proceso de bsqueda, empezando por el registro que sigue inmediatamente al registro coincidente. Puede emitir CONTINUE repetidamente hasta llegar al final del alcance o de la tabla. Si no se encuentra ninguna coincidencia, RECNO( ) devolver el nmero de registros de la tabla ms uno, FOUND( ) devolver falso (.F.) y EOF( ) devolver verdadero (.T.). LOCATE y CONTINUE son especficos del rea de trabajo actual. Si se selecciona otro rea de trabajo, el proceso de bsqueda original podr continuarse cuando se vuelva a seleccionar el rea de trabajo original.

LOCK( ) (Funcin)
Intenta bloquear uno o varios registros de una tabla. Sintaxis LOCK([nreaTrabajo | cAliasTabla] | [cListaNmeroRegistro, nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos nreaTrabajo | cAliasTabla Intenta bloquear el registro activo de una tabla abierta en un rea de trabajo especfica. nreaTrabajo especifica el nmero del rea de trabajo y cAliasTabla especifica el alias de la tabla. Si no especifica ningn rea de trabajo ni alias de tabla, LOCK( ) intentar bloquear el registro activo de la tabla del rea de trabajo actual. cListaNmeroRegistro Especifica una lista de uno o varios nmeros de registro que es necesario incluir para intentar bloquear mltiples registros. SET MULTILOCKS debe estar ON y se deben incluir el rea de trabajo o el alias de la tabla en la que se est intentando introducir mltiples bloqueos de registros. LOCK( ) intenta bloquear todos los registros especificados. Los nmeros de registro especificados mediante cListaNmeroRegistro se separan por comas. Por ejemplo, para intentar bloquear los cuatro primeros registros de una tabla, cListaNmeroRegistro debe contener 1,2,3,4. 51

Tambin puede bloquear varios registros moviendo el puntero de registro al registro que quiere bloquear, emitiendo LOCK( ) o RLOCK( ) y repitiendo luego estos pasos para cada registro adicional. En Visual FoxPro puede especificar 0 como nmero de registro. Al especificar 0, el sistema le permite intentar bloquear el encabezado de la tabla. Importante: Mantenga bloqueado el encabezado de la tabla el menor tiempo posible porque los dems usuarios no pueden agregar registros a la tabla cuando su encabezado est bloqueado. Libere el bloqueo del encabezado de la tabla con UNLOCK RECORD 0, UNLOCK o UNLOCK ALL. Si todos los registros especificados en cNmerosRegistros se bloquean con xito, LOCK( ) devolver verdadero (.T.). Si alguno de los registros especificados con cNmerosRegistros no se puede bloquear, aunque sea uno solo, LOCK( ) devolver falso (.F.) y ninguno de los registros se bloquear. No obstante, los bloqueos existentes en los registros permanecern. El bloqueo de mltiples registros es un proceso aditivo. Agregar bloqueos de registros adicionales no libera los bloqueos de otros registros. El nmero mximo de registros que pueden estar bloqueados en cada rea de trabajo es aproximadamente 8.000. Siempre es ms rpido bloquear toda la tabla en lugar de varios registros, aunque sean pocos. Comentarios La funcin LOCK( ) es idntica a RLOCK( ). Si los bloqueos se sitan correctamente, LOCK( ) devolver verdadero (.T.). Los registros bloqueados estn disponibles tanto para acceso de lectura como de escritura para el usuario que efecta los bloqueos; estarn disponibles nicamente con acceso de lectura para todos los dems usuarios de la red. La ejecucin de LOCK( ) no garantiza que se vayan a efectuar con xito el bloqueo o los bloqueos de registros. No puede efectuarse un bloqueo de registro sobre un registro que ya est bloqueado por otro usuario o en una tabla bloqueada por otro usuario. Si el bloqueo o los bloqueos de registro no logran efectuarse por alguna razn, LOCK( ) devolver el valor falso (.F.). De forma predeterminada, LOCK( ) intenta bloquear un registro. Utilice SET REPROCESS para reintentar automticamente un bloqueo de registro cuando falle el primer intento. SET REPROCESS determina el nmero de intentos de bloqueo o durante cunto tiempo se intentar bloquear cuando fracase el intento inicial. Para obtener ms informacin al respecto, vea SET REPROCESS. SET MULTILOCKS determina si puede bloquear mltiples registros de una tabla. Si SET MULTILOCKS est OFF (valor predeterminado), slo podr bloquear un registro de una tabla. Cuando SET MULTILOCKS est ON, podr bloquear mltiples registros de una tabla. Para obtener ms informacin al respecto, vea SET MULTILOCKS. Desbloqueo de registros: Un registro de una tabla slo puede desbloquearlo el usuario que efectu el bloqueo. Puede liberar bloqueos de registro emitiendo UNLOCK, cerrando la tabla o saliendo de Visual FoxPro. UNLOCK puede utilizarse para liberar bloqueos de registro del rea de trabajo actual, un rea de trabajo concreta o todas las reas de trabajo. Para obtener ms informacin al respecto, vea UNLOCK. Alternando MULTILOCKS de ON a OFF o de OFF a ON se realiza UNLOCK ALL de forma implcita: se liberan todos los bloqueos de registro de todas las reas de trabajo. Las tablas pueden cerrarse con USE, CLEAR ALL o CLOSE DATABASES.

LTRIM( ) (Funcin)
Devuelve la expresin de caracteres especificada despus de eliminar los espacios en blanco iniciales. Sintaxis 52

LTRIM(cExpresin) Tipos devueltos Character Argumentos cExpresin Especifica la expresin de caracteres de la cual LRTRIM( ) elimina los espacios en blanco iniciales. Comentarios Esta funcin es especialmente til para eliminar los espacios en blanco iniciales que se insertan cuando se utiliza STR( ) para convertir un valor numrico en una cadena de caracteres.

MAX( ) (Funcin)
Evala un conjunto de expresiones y devuelve la expresin con el valor mximo. Sintaxis MAX(eExpresin1, eExpresin2 [, eExpresin3 ...]) Tipos devueltos Character, Numeric, Currency, Double, Float, Date o DateTime Argumentos eExpresin1, eExpresin2 [, eExpresin3 ...] Especifique las expresiones de las que desea que MAX( ) devuelva la expresin con el valor ms elevado. Todas las expresiones deben ser del mismo tipo de datos.

MESSAGEBOX( ) (Funcin)
Muestra un cuadro de dilogo definido por el usuario. Sintaxis MESSAGEBOX(cTextoMensaje [, nTipoCuadroDilogo [, cTextoBarraTtulo]]) Tipos devueltos Numeric Argumentos cTextoMensaje Especifica el texto que aparece en el cuadro de dilogo. Utilice un retorno de carro (CHR(13)) en cTextoMensaje para mover una parte del mensaje a la siguiente lnea del cuadro de dilogo. La altura y la anchura del cuadro de dilogo aumentan lo que sea necesario para que quepa cTextoMensaje. nTipoCuadroDilogo Especifica los botones y los iconos que aparecen en el cuadro de dilogo, el botn predeterminado y el comportamiento del cuadro de dilogo. En las tablas siguientes, los valores 0 a 5 del botn del cuadro de dilogo especifican los botones que aparecen en el mismo. Los valores de icono 16, 32, 48 y 64 especifican el icono que aparece en el cuadro de dilogo. Los valores predeterminados 0, 256 y 512 especifican qu botn del cuadro de dilogo es el botn predeterminado. El botn predeterminado se selecciona cuando aparece el cuadro de dilogo. 53

Omitir nTipoCuadroDilogo es lo mismo que especificar un valor de 0 para nTipoCuadroDilogo. Valor 0 1 2 3 4 5 Valor 16 32 48 64 Valor 0 256 512 Botones del cuadro de dilogo Slo botn Aceptar. Botones Aceptar y Cancelar. Botones Anular, Reintentar e Ignorar. Botones S, No y Cancelar. Botones S y No. Botones Reintentar y Cancelar. Icono Punto. Signo de interrogacin. Signo de exclamacin. Icono de informacin (i). Botn predeterminado Primer botn. Segundo botn. Tercer botn.

nTipoCuadroDilogo puede ser la suma de hasta tres valores, uno de cada una de las tablas anteriores. Por ejemplo, si nTipoCuadroDilogo es 290 (2+32+256), el cuadro de dilogo especificado tendr las siguientes caractersticas: Botones Anular, Reintentar e Ignorar. El cuadro de mensaje muestra el icono del signo de interrogacin. El segundo botn, Reintentar, es el botn predeterminado.

cTextoBarraTtulo Especifica el texto que aparece en la barra de ttulo del cuadro de dilogo. Si omite cTextoBarraTtulo, en la barra de ttulo aparecer el ttulo Microsoft Visual FoxPro. Comentarios El valor que devuelve MESSAGEBOX( ) indica qu botn del cuadro de dilogo se ha elegido. En los cuadros de dilogo con un botn Cancelar, al presionar la tecla ESC para salir del cuadro de dilogo se devolver el mismo valor (2) que al elegir Cancelar. Observe que la abreviatura ms corta para esta funcin es MESSAGEB( ). La tabla siguiente muestra los valores que devuelve MESSAGEBOX( ) para cada botn. Valor devuelto 1 2 3 4 5 6 7 Botn Aceptar Cancelar Anular Reintentar Ignorar S No

MIN( ) (Funcin)
Evala un conjunto de expresiones y devuelve la expresin que tenga el valor mnimo. Sintaxis MIN(eExpresin1, eExpresin2 [, eExpresin3 ...]) Tipos devueltos

54

Character, Numeric, Currency, Double, Float, Date o DateTime Argumentos eExpresin1, eExpresin2 [, eExpresin3 ...] Especifican el conjunto de expresiones a partir del cual desea que MIN( ) devuelva la expresin cuyo valor es menor. Todas las expresiones deben ser del mismo tipo.

MOD( ) (Funcin)
Divide una expresin numrica entre otra expresin numrica y devuelve el resto. Sintaxis MOD(nDividendo, nDivisor) Tipos devueltos Numeric Argumentos nDividendo Especifica el dividendo. El nmero de lugares decimales en nDividendo determina el nmero de lugares decimales en el resultado. nDivisor Especifica el divisor. Si nDivisor es positivo, se devolver un nmero positivo, si nDivisor es negativo se devolver un nmero negativo. Comentarios La funcin de mdulo MOD( ) y el operador % devuelven resultados idnticos.

MODIFY COMMAND (Comando)


Abre una ventana de edicin de texto, permitindole modificar o crear un archivo de programa. Sintaxis MODIFY COMMAND [NombreArchivo | ?] [NOEDIT] [NOMENU] [NOWAIT] [RANGE nCarcterInicial, nCarcterFinal] [[WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN]] [AS nPginaCdigo] [SAME] [SAVE] Argumentos NombreArchivo Especifica el nombre del archivo para el programa que se va a abrir o crear. Si no especifica una extensin para un nuevo archivo de programa, Visual FoxPro asigna automticamente la extensin .PRG. MODIFY COMMAND admite una estructura de archivo que contenga los caracteres comodn asterisco (*) e interrogacin (?). Se abrir una ventana de edicin de texto para cada programa cuyo nombre coincida con el estructura de archivos. Si omite el nombre del archivo, aparecer una ventana de edicin de texto para un archivo que inicialmente se llama PROG1.PRG. Cuando cierre la ventana de edicin de texto podr guardar el archivo con un nombre diferente.

55

? Muestra el cuadro de dilogo Abrir. Elija uno de los programas existentes o escriba el nombre de un programa nuevo que desee crear. NOEDIT Indica que el archivo de programa no podr cambiarse, pero podr visualizarse y copiarse al Portapapeles. NOMENU Elimina el ttulo de men Formato de la barra de mens del sistema de Visual FoxPro, lo que impide cambios de fuente, tamao de fuente, espacio interlineal y sangrado. NOWAIT Contina con la ejecucin del programa despus de que se abra la ventana de edicin de texto. El programa no espera a que se cierre la ventana de edicin, sino que contina la ejecucin en la lnea de programa siguiente a la que contiene MODIFY COMMAND NOWAIT. Si omite NOWAIT al utilizar MODIFY COMMAND en un programa, se abre una ventana de edicin y la ejecucin del programa se interrumpe hasta que se cierra la ventana. NOWAIT solamente es efectivo desde el interior de un programa. No ejerce ningn efecto en MODIFY COMMAND cuando se emite desde la ventana Comandos. Se produce un NOWAIT implcito cuando abre ms de una ventana de edicin de texto con un solo comando MODIFY COMMAND. Por ejemplo: MODIFY COMMAND *.PRG. RANGE nCarcterInicial, nCarcterFinal Especifica un intervalo de caracteres seleccionado cuando se abre la ventana de edicin de texto. Los caracteres se seleccionan comenzando en la posicin especificada con nCarcterInicial hasta el carcter que se encuentre en la posicin nCarcterFinal. Si nCarcterInicial es igual a nCarcterFinal, no se seleccionar ningn carcter y el cursor se situar en la posicin especificada con nCarcterInicial. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas asumir la ventana de edicin de texto. Por ejemplo, si la ventana est definida con la clusula FLOAT de DEFINE WINDOW, la ventana de edicin de texto podr moverse. La ventana no necesita estar activa o visible, pero debe estar definida. IN [WINDOW] NombreVentana2 Especifica una ventana primaria dentro de la cual se abrir una ventana de edicin de texto. La ventana de edicin de texto no asumir las caractersticas de la ventana primaria y no puede moverse fuera de la ventana primaria. Si se mueve la ventana primaria, la ventana de edicin de texto se mover con ella. Para acceder a la ventana de edicin de texto, la ventana primaria debe estar definida anteriormente con DEFINE WINDOW y debe estar visible. IN SCREEN Abre explcitamente la ventana de edicin en la ventana principal de Visual FoxPro, despus de haberla situado en una ventana primaria. Se colocar una ventana de edicin en una ventana primaria incluyendo la clusula IN WINDOW. AS nPginaCdigo Convierte automticamente los caracteres acentuados de un programa o archivo de texto creado en otra plataforma de Visual FoxPro. La expresin numrica nPginaCdigo especifica la pgina de cdigos de la plataforma de Visual FoxPro en la que se cre el archivo de programa. El archivo se guarda con esa pgina de cdigos hasta que elija Guardar como... del men Archivo para guardar el archivo con una pgina de cdigos distinta. SAME Evita que la ventana de edicin de texto se ponga delante como ventana activa. Si la ventana de edicin de texto est oculta, se mostrar pero no se convertir en la ventana activa. SAVE Conserva la ventana de edicin de texto abierta despus de que otra ventana se active. Si omite SAVE, la ventana de edicin de texto se cierra cuando otra ventana se activa. La inclusin de SAVE no tendr ningn efecto cuando se emita desde la ventana Comandos. Comentarios

56

Cuando se hacen modificaciones a un archivo de programa, el archivo actualizado se escribe en el disco. En Visual FoxPro, se crear un archivo de seguridad con una extensin .BAK cuando seleccione la casilla de verificacin "Hacer copia de seguridad" en la ficha Editar del cuadro de dilogo Opciones, que aparece al elegir Opciones en el men Herramientas.

MODIFY DATABASE (Comando)


Abre el Diseador de bases de datos, que permite modificar interactivamente la base de datos actual. Sintaxis MODIFY DATABASE [NombreBaseDatos | ?] [NOWAIT] [NOEDIT] Argumentos NombreBaseDatos Especifica el nombre de la base de datos a modificar. ? Muestra el cuadro de dilogo Abrir, en el que podr especificar el nombre de la base de datos a modificar. NOWAIT Contina la ejecucin del programa despus de abrir el Diseador de bases de datos. El programa no espera a que se cierre el Diseador de bases de datos, sino que contina la ejecucin en la lnea del programa que sigue inmediatamente a la lnea que contiene MODIFY DATABASE NOWAIT. Si omite NOWAIT cuando se ejecuta MODIFY DATABASE en un programa, se abre el Diseador de bases de datos y se detiene la ejecucin del programa hasta que se cierre el Diseador de bases de datos. NOWAIT slo es efectivo desde un programa. No surte ningn efecto sobre MODIFY DATABASE cuando se ejecuta desde la ventana Comandos. NOEDIT Impide la inclusin de cambios en la base de datos.

MODIFY MENU (Comando)


Muestra la ventana Diseador de mens y le permite modificar o crear un sistema de mens. Sintaxis MODIFY MENU [NombreArchivo | ?] [[WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN]] [NOWAIT] [SAVE] Argumentos NombreArchivo Especifique el nombre del archivo para el men. Si no especifica ninguna extensin para el nombre del archivo, Visual FoxPro asigna automticamente la extensin .MNX. ? Muestra un cuadro de dilogo Abrir en el que puede elegir un archivo de men existente o introducir el nombre de uno nuevo que desee crear. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas asumir el Diseador de mens. Por ejemplo, si la ventana est definida con la clusula FLOAT de DEFINE WINDOW, el Diseador de mens podr moverse. La ventana que especifique no necesita estar activa o visible, pero debe estar definida. IN [WINDOW] NombreVentana2 Especifica una ventana cuyas caractersticas asumir el Diseador de mens. Por ejemplo, si la ventana est definida con la clusula FLOAT de DEFINE WINDOW, el Diseador de mens podr moverse. La ventana que especifique no necesita estar activa o visible, pero debe estar definida. 57

Para acceder al Diseador de mens, la ventana primaria debe estar definida antes con DEFINE WINDOW y debe ser visible. IN SCREEN Abre explcitamente el Diseador de mens en la ventana principal de Visual FoxPro, despus de haberlo situado en una ventana primaria. El Diseador de mens se sita en una ventana primaria incluyendo la clusula IN WINDOW. NOWAIT Contina la ejecucin del programa despus de abrir el Diseador de mens. El programa no espera a que se cierre el Diseador de mens, sino que contina la ejecucin en la lnea de programa siguiente a la que contiene MODIFY MENU NOWAIT. Si omite NOWAIT al emitir MODIFY MENU en un programa, el Diseador de mens se abre y la ejecucin del programa se interrumpe hasta que se cierre el Diseador de mens. NOWAIT solamente es efectivo desde un programa. No ejerce ningn efecto en MODIFY MENU cuando se emite desde la ventana Comandos. Si emite MODIFY MENU desde la ventana Comandos sin un nombre de men e incluye NOWAIT, no aparecer el dilogo Nuevo men. El dilogo Nuevo men le permite especificar el tipo de men creado (estndar o contextual). SAVE Deja el Diseador de mens abierto despus de que otra ventana se active. Si omite SAVE, el Diseador de mens se cierra cuando otra ventana se activa. La inclusin de SAVE no tendr ningn efecto cuando se emita desde la ventana Comandos.

MODIFY PROJECT (Comando)


Abre el Administrador de proyectos de forma que pueda modificar o crear un archivo de proyecto. Sintaxis MODIFY PROJECT [NombreArchivo | ?] [IN SCREEN] [NOWAIT] [SAVE] Argumentos NombreArchivo Especifica el nombre del archivo para el proyecto. Si no especifica ninguna extensin para el nombre del archivo, Visual FoxPro asigna automticamente la extensin .PJX. ? Muestra el cuadro de dilogo Abrir desde el que puede abrir un archivo de proyecto existente o introducir el nombre de un nuevo proyecto que desea crear. IN SCREEN Abre explcitamente el Administrador de proyectos en la ventana principal de Visual FoxPro, despus de incluirlo en una ventana primaria. El Administrador de proyectos se sita en una ventana primaria incluyendo la clusula IN WINDOW. NOWAIT Contina la ejecucin del programa despus de abrir el Administrador de proyectos. El programa no espera a que el Administrador de proyectos se cierre, sino que contina la ejecucin en la lnea de programa siguiente a la que contiene MODIFY PROJECT NOWAIT. Si omite NOWAIT al emitir MODIFY PROJECT en un programa, el Administrador de proyectos se abre y la ejecucin del programa se interrumpe hasta que se cierre el Administrador de proyectos. NOWAIT solamente es efectivo desde un programa. No ejerce ningn efecto en MODIFY PROJECT cuando se emite desde la ventana Comandos. SAVE Deja el Administrador de proyectos abierto despus de que otra ventana se active. Si omite SAVE, el Administrador de proyectos se cierra cuando otra ventana se activa. La inclusin de SAVE no tendr ningn efecto cuando se emite desde la ventana Comandos. Comentarios 58

En un proyecto, el usuario especifica todos los archivos de origen necesarios para una aplicacin final y despus Visual FoxPro se asegura de que la aplicacin generada est basada en los archivos de origen ms recientes. Un archivo de proyecto es una tabla que registra todos los archivos de origen como programas, formularios, mens, bibliotecas, informes, etiquetas, ndices y archivos de formato. Un proyecto tambin registra todas las dependencias, referencias y conexiones entre archivos. Nota: No se puede incluir en proyectos bibliotecas compartidas (archivos .FLL, .MLB, .DLL, y CFM). Un archivo de proyecto tiene la extensin .PJX de nombre de archivo y un archivo memo asociado con la extensin .PJT. Al emitir MODIFY PROJECT sin ningn argumento se muestra el cuadro de dilogo Abrir.

MODIFY REPORT (Comando)


Abre el Diseador de informes para permitirle modificar o crear un informe. Sintaxis MODIFY REPORT [NombreArchivo | ?] [[WINDOW NombreVentana1] [IN [WINDOW] NombreVentana2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT] [SAVE] Argumentos NombreArchivo Especifica el nombre del archivo para el informe. Si no especifica ninguna extensin para el nombre del archivo, Visual FoxPro asigna automticamente la extensin .FRX. ? Muestra el cuadro de dilogo Abrir en el cual puede elegir un archivo de informe existente o introducir el nombre de un nuevo informe que desee crear. WINDOW NombreVentana1 Especifica una ventana cuyas caractersticas asumir el Diseador de informes. Por ejemplo, si la ventana est definida con la clusula FLOAT de DEFINE WINDOW, el Diseador de informes podr moverse. La ventana que especifique no necesita estar activa o visible, pero debe estar definida. IN [WINDOW] NombreVentana2 Especifica una ventana primaria dentro de la cual se abrir el Diseador de informes. El Diseador de informes no asumir las caractersticas de la ventana primaria y no podr moverse fuera de ella. Si la ventana primaria se mueve, el Diseador de informes se mover con ella. Para acceder al Diseador de informes, la ventana primaria debe estar definida antes con DEFINE WINDOW y debe ser visible. IN SCREEN Abre explcitamente el Diseador de informes en la ventana principal de Visual FoxPro, despus de situarlo en una ventana primaria. El Diseador de informes se sita en una ventana primaria incluyendo la clusula IN WINDOW. NOENVIRONMENT Se incluye por compatibilidad con los informes de la versin 2.x, impidiendo guardar el entorno con el informe. En Visual FoxPro, el entorno de datos asociado a un informe de Visual FoxPro se restaura estableciendo la propiedad AutoOpenTables del entorno de datos como verdadera (.T.), que es el valor predeterminado. Para asegurarse de que el entorno del informe se cierra cuando se termina de imprimir el informe, establezca la propiedad AutoCloseTables del entorno de datos como verdadera (.T.), que tambin es el valor predeterminado. 59

Cuando cree o modifique informes, puede guardar el entorno de datos actual de Visual FoxPro con el archivo de definicin de informe. Esto pone los registros adicionales en la tabla de definicin de informe para todas las tablas abiertas y archivos de ndice, el orden de ndice y cualquier relacin entre las tablas. NOWAIT Contina la ejecucin del programa despus de abrir el Diseador de informes . El programa no espera a que se cierre el Diseador de informes, sino que contina la ejecucin en la lnea de programa siguiente a la que contiene MODIFY REPORT NOWAIT. Si omite NOWAIT al emitir MODIFY REPORT en un programa, el Diseador de informe se abre y la ejecucin del programa se interrumpe hasta que se cierre el Diseador de informes. NOWAIT slo est disponible dentro de un programa. No tendr ningn efecto sobre MODIFY REPORT cuando se emita desde la ventana Comandos. SAVE Deja el Diseador de informes abierto despus de que otra ventana se active. Si omite SAVE, el Diseador de informes se cierra cuando otra ventana se activa. La inclusin de SAVE no tendr ningn efecto cuando se emita desde la ventana Comandos. Comentarios Al emitir MODIFY REPORT sin ningn argumento se muestra el cuadro de dilogo Abrir. Si elige Nuevo en este cuadro de dilogo, se asigna el nombre INFORME1 al archivo de informe. Puede guardar el archivo de informe con otro nombre distinto al cerrar el Diseador de informes.

MONTH( ) Funcin
Devuelve el nmero de mes de una expresin determinada de tipo Date o DateTime. Sintaxis MONTH(dExpresin | tExpresin) Tipos devueltos Numeric Argumentos dExpresin Especifica la expresin Date de la que quiere que MONTH( ) le devuelva el nmero de mes. tExpresin Especifica la expresin DateTime de la que quiere que MONTH( ) le devuelva el nmero de mes. Comentarios MONTH( ) devuelve un nmero de 1 a 12. Enero es el mes 1, y diciembre es el mes 12.

ON ESCAPE (Comando)
Especifica el comando que se ejecutar cuando presione la tecla ESC durante la ejecucin de un programa o comando. Sintaxis ON ESCAPE [Comando] Argumentos

60

Comando Especifica el comando de Visual FoxPro que se va a ejecutar. Despus de que se ejecute el comando especificado con ON ESCAPE, la ejecucin del programa se reanuda en la lnea inmediatamente siguiente a la lnea de programa que se estaba ejecutando cuando se presion ESC. Sin embargo, si el procedimiento especificado con ON ESCAPE incluye RETRY, la lnea de programa que se estaba ejecutando cuando se presion la tecla Esc se ejecutar otra vez. Comentarios Normalmente, ON ESCAPE utiliza DO para ejecutar un procedimiento. Si estn funcionando a la vez ON ESCAPE y ON KEY cuando se presiona la tecla ESC, Visual FoxPro ejecutar el comando especificado con ON ESCAPE. Utilice ON ESCAPE sin un comando para provocar que no se ejecute ningn comando cuando se presione la tecla ESC(la opcin predeterminada). Nota: Visual FoxPro no ejecuta una rutina ON ESCAPE si SET ESCAPE est OFF. Especifica el comando que se ejecutar cuando presione la tecla ESC durante la ejecucin de un programa o comando. Sintaxis ON ESCAPE [Comando] Argumentos Comando Especifica el comando de Visual FoxPro que se va a ejecutar. Despus de que se ejecute el comando especificado con ON ESCAPE, la ejecucin del programa se reanuda en la lnea inmediatamente siguiente a la lnea de programa que se estaba ejecutando cuando se presion ESC. Sin embargo, si el procedimiento especificado con ON ESCAPE incluye RETRY, la lnea de programa que se estaba ejecutando cuando se presion la tecla Esc se ejecutar otra vez. Comentarios Normalmente, ON ESCAPE utiliza DO para ejecutar un procedimiento. Si estn funcionando a la vez ON ESCAPE y ON KEY cuando se presiona la tecla ESC, Visual FoxPro ejecutar el comando especificado con ON ESCAPE. Utilice ON ESCAPE sin un comando para provocar que no se ejecute ningn comando cuando se presione la tecla ESC(la opcin predeterminada). Nota: Visual FoxPro no ejecuta una rutina ON ESCAPE si SET ESCAPE est OFF.

PACK (Comando)
Borra permanentemente todos los registros marcados para eliminar de la tabla actual y reduce el tamao de un archivo memo asociado a una tabla. Sintaxis PACK [MEMO] [DBF] Argumentos MEMO Elimina el espacio no utilizado del archivo memo, pero no elimina los registros marcados para eliminar de la tabla. La informacin de los campos memo se almacena en un archivo memo asociado. Un archivo memo tiene el mismo nombre que la tabla y la extensin .FPT. DBF Elimina de la tabla los registros marcados para eliminacin, pero no afecta al archivo memo. Comentarios 61

Cuando se emite PACK, Visual FoxPro copiar todos los registros que no estn marcados para borrar a una tabla temporal. Cuando se termine PACK, Visual FoxPro eliminar la tabla original del disco y cambiar el nombre de la tabla temporal por el nombre de la tabla original. PACK puede interrumpirse presionando ESC. Al presionar ESC se detiene PACK, la tabla temporal se borra y la tabla original permanece inalterada. Tambin recuperar la tabla original si agota el espacio del disco durante un PACK. Cuando se emite PACK sin las clusulas MEMO y DBF, se empaquetan tanto la tabla como el archivo memo. PACK necesita utilizar de forma exclusiva la tabla. Para obtener ms informacin sobre la apertura de una tabla de forma exclusiva en una red, vea SET EXCLUSIVE. Si la tabla activa tiene uno o varios ndices abiertos, PACK regenera los archivos de ndice. Precaucin: Tenga cuidado de marcar solamente los registros que no va a necesitar ms. No hay ninguna forma de recuperar los registros eliminados despus de utilizar PACK.

PRIVATE (Comando)
Oculta al programa actual las variables o matrices de memoria especificadas que estaban definidas en el programa que llama. Sintaxis PRIVATE ListaVariables O bien PRIVATE ALL [LIKE Estructura | EXCEPT Estructura] Argumentos ListaVariables Especifica las variables o matrices de memoria a declarar privadas. ALL LIKE Estructura La clusula ALL LIKE hace que PRIVATE oculte todas las variables y matrices de memoria cuyos nombres coincidan con la estructura Estructura, puede contener los caracteres comodn ? y *. ALL EXCEPT Estructura La clusula PRIVATE hace que oculte todas las variables o matrices de memoria cuyos nombres no coincidan con la estructura Estructura, puede contener los caracteres comodn ? y *. Comentarios Oculta al programa actual las variables o matrices de memoria definidas en un programa ejecutado previamente. Ocultar variables creadas en programas de nivel superior permite manipular en el programa actual variables privadas con el mismo nombre que las variables ocultas. Una vez que termina el programa que contiene PRIVATE, todas las variables y matrices de memoria que se declararon privadas vuelven a estar disponibles. PRIVATE no crea variables; simplemente oculta al programa actual las variables declaradas en programas de nivel superior.

PROCEDURE (Comando)
Identifica el principio de un procedimiento en un archivo de programa. Sintaxis PROCEDURE NombreProcedimiento Comandos 62

[RETURN [eExpresin]] ENDPROC Argumentos NombreProcedimiento Especifica el nombre del procedimiento que se va a crear. Comentarios PROCEDURE es una instruccin dentro de un archivo de programa. Especifica el principio de cada procedimiento en un archivo de programa y define el nombre del procedimiento. Deben comenzar por una letra o un subrayado y pueden contener cualquier combinacin de letras, nmeros y subrayados. En Visual FoxPro, los nombres de procedimiento pueden tener una longitud mxima de 254 caracteres. Los comentarios se pueden colocar en la misma lnea despus de PROCEDURE y ENDPROC. Estos comentarios se ignoran durante la compilacin y la ejecucin del programa. La lnea de comando PROCEDURE va seguida de una serie de comandos que componen el procedimiento. Puede incluir opcionalmente RETURN en cualquier parte del procedimiento para devolver el control al programa al que se llama o a otro programa, y para definir un valor devuelto por el procedimiento. Si no incluye un comando RETURN, se ejecutar automticamente un comando RETURN implcito cuando termine la funcin. Si el comando RETURN no incluye un valor devuelto (o si se ejecuta un RETURN implcito), Visual FoxPro asigna .T. (verdadero) como el valor devuelto. El procedimiento termina con el comando ENDPROC. Este comando es opcional; el procedimiento termina cuando se encuentra otro comando PROCEDURE, un comando FUNCTION, o el final del archivo de programa. Nota: No puede incluir cdigo de programa ejecutable normal en un archivo de programa despus de procedimientos; slo los procedimientos, las funciones definidas por el usuario, y las definiciones de clase pueden ir a continuacin del comando PROCEDURE o FUNCTION en el archivo. Cuando ejecuta un procedimiento con DO NombreProcedimiento, Visual FoxPro buscar el procedimiento en un orden especfico. Visual FoxPro busca: 1. 2. 3. 4. El archivo que contiene DO NombreProcedimiento. La base de datos actual. Los archivos de procedimientos abiertos con SET PROCEDURE. Los programas en la cadena de ejecucin. Los archivos de programa se buscan comenzando por el programa ejecutado ms recientemente y continuando hacia atrs hasta el primer programa ejecutado. Un archivo de programa autnomo. Si se encuentra un archivo de programa con el mismo nombre que el nombre de archivo especificado con DO, se ejecutar. Si no se encuentra ningn nombre de archivo de programa coincidente, se mostrar un mensaje de error.

5.

Incluya la clusula IN en DO para ejecutar un procedimiento en un archivo especfico. De forma predeterminada, los parmetros se pasan a procedimientos por valor. Para obtener informacin sobre cmo pasar parmetros a procedimientos mediante referencia, vea SET UDFPARMS. A un procedimiento se puede pasar un mximo de 27 parmetros. Los parmetros se pueden pasar a un procedimiento incluyendo una instruccin PARAMETERS o LPARAMETERS en el procedimiento, o colocando una lista de parmetros inmediatamente despus de PROCEDURE NombreProcedimiento. Escriba la lista de parmetros entre parntesis, y separe los parmetros con comas.

PUBLIC (Comando)
Define variables de memoria o matrices globales. Sintaxis PUBLIC ListaVariablesMemoria 63

O bien PUBLIC [ARRAY] NombreMatriz1(nFilas1 [, nColumnas1]) [, NombreMatriz2(nFilas2 [, nColumnas2])] ... Argumentos ListaVariablesMemoria Especifica los nombres de una o ms variables de memoria que se van a inicializar y designar como globales. [ARRAY] NombreMatriz1 (nFilas1 [, nColumnas1]) [, NombreMatriz2 (nFilas2 [, nColumnas2])] ... Especifica una o ms matrices que se van a inicializar y designar como globales. Vea en DIMENSION una descripcin de cada argumento. Comentarios Las variables y matrices globales pueden utilizarse y modificarse en cualquier programa que ejecute durante la sesin actual de Visual FoxPro. Las variables y matrices de memoria que se crean con PUBLIC se inicializan a falso (.F.) excepto las variables pblicas FOX y FXOPRO, que se inicializan a verdadero (.T.). Las variables pblicas FOX y FOXPRO pueden utilizarse para ejecutar cdigo condicionalmente basndose en el producto que est ejecutando. Cualquier variable o matriz de memoria que cree en la ventana Comandos ser automticamente pblica. Todas las variables o matrices de memoria que quiera declarar como pblicas deben declararse pblicas antes de asignarles un valor. Si dentro de un programa asigna un valor a una variable de memoria o a una matriz y luego la declara pblica mediante PUBLIC, Visual FoxPro generar un error de sintaxis.

QUIT (Comando)
Termina la sesin actual de Visual FoxPro y devuelve el control al sistema operativo. Sintaxis QUIT Comentarios En Visual FoxPro y en FoxPro para Windows, vuelve a Windows. Precaucin: Siempre debe utilizarse QUIT para terminar una sesin de Visual FoxPro. Si apaga su PC sin emitir QUIT puede daar los archivos abiertos y perder datos. Adems, puede dejar en el disco archivos temporales de trabajo que normalmente se eliminaran.

READ EVENTS (Comando)


Inicia el procesamiento de eventos. Sintaxis READ EVENTS Comentarios Cuando se emite READ EVENTS, Visual FoxPro inicia el procesamiento de eventos.

64

Emita CLEAR EVENTS para detener el procesamiento de eventos. Cuando se emite CLEAR EVENTS, contina la ejecucin del programa con la lnea inmediatamente a continuacin de READ EVENTS.

RECALL (Comando)
Quita la marca de los registros marcados para eliminacin en la tabla seleccionada. Sintaxis RECALL [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [NOOPTIMIZE] Argumentos Alcance Especifica un intervalo de registros para desmarcar. Solamente se desmarcan los registros incluidos en el intervalo especificado. Las clusulas del alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. El alcance predeterminado de RECALL es el registro actual (NEXT 1). FOR lExpresin1 Especifica que solamente se desmarcan los registros para los cuales lExpresin1 se evala como verdadera (.T.), lo que permite filtrar registros no deseados. Esta opcin le permite filtrar registros no deseados. Si lExpresin1 es una expresin optimizable, Rushmore optimizar RECALL FOR. Para obtener un mejor rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual se desmarcan los registros siempre y cuando la expresin lExpresin2 se evale como verdadera (.T.). NOOPTIMIZE Impide la optimizacin Rushmore de RECALL. Comentarios RECALL puede utilizarse para recuperar registros, siempre y cuando no se haya emitido PACK o ZAP. Precaucin: Una vez que se ha empaquetado el archivo, todos los registros marcados para eliminacin se pierden para siempre. Puede marcar registros para su eliminacin si emite DELETE o DELETE - SQL, o si elige Eliminar registros en el men Tabla cuando hay una ventana Examinar o Editar activa. Puede recuperar registros ejecutando RECALL o bien eligiendo Desmarcar registros en el men Registro cuando hay una ventana Examinar o Editar activa.

RECNO( ) (Funcin)
Devuelve el nmero del registro actual de la tabla actual o la especificada. Sintaxis RECNO([nreaTrabajo | cAliasTabla]) Tipos devueltos Numeric Argumentos nreaTrabajo Especifica el nmero del rea de trabajo de una tabla abierta en otra rea de trabajo. Si no est abierta ninguna tabla en el rea de trabajo que especifica, RECNO( ) devolver cero. 65

cAliasTabla Especifica el alias de una tabla abierta en otra rea de trabajo. Comentarios El registro actual es el registro en el cual se encuentra el puntero de registro. RECNO( ) devuelve nmeros negativos para registros aadidos en un bfer de tablas. RECNO( ) devuelve un valor que es el nmero de registros de la tabla ms uno si el puntero de registro se encuentra mas all del ltimo registro de la misma. RECNO( ) devuelve 1 si el puntero de registro se encuentra antes del primer registro de la tabla. Si la tabla no tiene registros, EOF( ) siempre devolver verdadero (.T.). RECNO( ) emitido sin los argumentos opcionales nreaTrabajo o cAliasTabla devuelve el nmero de registro actual de la tabla situada en el rea de trabajo seleccionada actualmente. Si ha emitido SEEK sin xito en una tabla indexada, puede especificar 0 para que nreaTrabajo utilice la lgica bsqueda cercana para devolver el nmero de registro del registro ms parecido. RECNO(0) devuelve 0 si no puede encontrarse ninguna coincidencia. Visual FoxPro generar un mensaje de error si emite GO RECNO(0) y no se encuentra ninguna coincidencia.

Refresh (Mtodo)
Vuelve a pintar un formulario o un control y actualiza todos los valores. Sintaxis [Formulario.]Objeto.Refresh Comentarios Generalmente, la operacin de pintar un formulario o un control se controla automticamente mientras no estn ocurriendo eventos. Utilice el mtodo Refresh cuando quiera actualizar un formulario o un control inmediatamente. Utilice Refresh para forzar una actualizacin completa de un formulario o control as como para actualizar los valores de un control. El mtodo Refresh es de mucha utilidad cuando se desea que un formulario se muestre mientras otro est cargndose o cuando quiere actualizar el contenido de un control. Para actualizar el contenido de un cuadro combinado o de lista, use el mtodo Requery. Nota: Cuando se actualiza un formulario, tambin se actualizan todos los controles del formulario. Cuando se actualiza un PageFrame, solamente se actualiza la pgina activa.

Release (Mtodo)
Libera de la memoria un formulario o un conjunto de formularios. Sintaxis Objeto.Release Comentarios El mtodo Release es muy til cuando se crea un formulario o un conjunto de formularios con el comando DO FORM y no haya variables que hagan referencia al formulario o al conjunto de formularios. Puede usar la coleccin de formularios del objeto Screen para encontrar el formulario o el conjunto de formularios y llamar a su mtodo Release. El mtodo Release es similar al comportamiento del comando RELEASE emitido desde el formulario o el conjunto de formularios. Libera de la memoria un formulario o un conjunto de formularios. 66

REPLACE (Comando)
Actualiza los registros de una tabla. Sintaxis REPLACE NombreCampo1 WITH eExpresin1 [ADDITIVE] [, NombreCampo2 WITH eExpresin2 [ADDITIVE]] ... [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [IN nreaTrabajo | cAliasTabla] [NOOPTIMIZE] Argumentos NombreCampo1 WITH eExpresin1 [, NombreCampo2 WITH eExpresin2 ... ] Especifica que los datos de NombreCampo1 se sustituyen por el valor de la expresin eExpresin1; que los datos de NombreCampo2 se sustituyen por el valor de la expresin eExpresin2; y as sucesivamente. Cuando el valor de la expresin sea ms largo que la anchura de un campo numrico, REPLACE har que quepa el valor: 1. 2. 3. Primero, REPLACE truncarn los decimales y se redondear la parte decimal restante del campo. Si el valor sigue sin caber, REPLACE almacenar el contenido del campo en notacin cientfica. Si el valor sigue sin caber, REPLACE sustituir el contenido del campo por asteriscos.

ADDITIVE Aade al final de los campos memo sustituciones de campos memo. ADDITIVE se aplica nicamente a las sustituciones de campos memo. Si no se incluye ADDITIVE, el campo memo se sobrescribir con el valor de la expresin. Alcance Especifica un rango de registros a sustituir. Solamente se sustituyen los registros incluidos dentro del rango. Las clusulas del alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. El alcance predeterminado de REPLACE es el registro actual (NEXT 1). FOR lExpresin1 Especifica que los campos designados se sustituyan nicamente en los registros para los que lExpresin1 se evale como verdadera (.T.). La inclusin de FOR le permite sustituir registros de forma condicional, descartando los registros no deseados. Si lExpresin1 es una expresin optimizable, Rushmore optimizar REPLACE FOR. Para mejorar el rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la que los campos se sustituyen mientras la expresin lgica lExpresin2 se evala a verdadera (.T.). IN nreaTrabajo Especifica el rea de trabajo de la tabla en la que se actualizan los registros. IN cAliasTabla Especifica el alias de la tabla en la que se actualizan los registros. Si omite nreaTrabajo y cAliasTabla, los registros se actualizarn en la tabla del rea de trabajo seleccionada actualmente. NOOPTIMIZE Impide la optimizacin Rushmore. Comentarios REPLACE sustituye los datos de un campo con el valor de una expresin. Los campos de las reas de trabajo no seleccionadas deben ir precedidos de su alias.

67

Nota: Si se omite la clusula IN, no se producir ninguna sustitucin si el puntero de registro est al final del archivo del rea de trabajo actual y especifica un campo de otro rea de trabajo.

REPLACE FROM ARRAY (Comando)


Actualiza los datos de campos que tengan valores procedentes de una matriz de variables. Sintaxis REPLACE FROM ARRAY NombreMatriz [FIELDS ListaCampos] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [NOOPTIMIZE] Argumentos NombreMatriz Especifica el nombre de la matriz cuyos valores sustituyen los datos del campo. FIELDS ListaCampos Especifica que solamente los campos incluidos en ListaCampos se sustituyan por el contenido de la matriz. Los campos de reas de trabajo no seleccionadas deben ir precedidos de sus alias de tabla. Alcance Especifica un intervalo de registros que se deben sustituir por el contenido de la matriz. Solamente se sustituyen los registros incluidos en el intervalo. Se realiza la sustitucin hasta el final del alcance o hasta llegar al final de la matriz. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. El alcance predeterminado para REPLACE FROM ARRAY es el registro actual (NEXT 1). FOR lExpresin1 Especifica que los campos se deben sustituir nicamente en los registros donde lExpresin1 se evale como verdadera (.T.). Incluir FOR le permite sustituir registros de forma condicional, filtrando los no deseados. La sustitucin se produce en los registros para los cuales lExpresin1 se verdadero (.T.), o hasta llegar al final de la matriz. Rushmore optimiza REPLACE FROM ARRAY FOR si lExpresin1 es una expresin optimizable. Para obtener el mejor rendimiento, utilice expresiones optimizables en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los campos de los registros se sustituyen por el contenido de la matriz siempre que la expresin lgica lExpresin2 se evale como verdadera (.T.). NOOPTIMIZE Impide la optimizacin Rushmore. Comentarios Los campos de tipo Memo y General se pasan por alto en REPLACE FROM ARRAY. Para importar datos en estos campos, use GATHER y APPEND GENERAL. Los elementos de la matriz sustituyen a los campos correspondientes del registro, comenzando por el primer elemento. El primer elemento de la matriz sustituye al primer campo del registro, el segundo elemento de la matriz sustituye al segundo campo, y as sucesivamente. Si los elementos de la matriz son menos que los campos que hay en la tabla, los campos adicionales se pasan por alto. Si los elementos de la matriz son ms que los campos de la tabla, los elementos adicionales de la matriz se pasan por alto. Nota: No se produce ninguna sustitucin si el puntero de registro est al final del archivo del rea de trabajo actual y especifica un campo de otra rea de trabajo.

REPLICATE( ) (Funcin)
68

Devuelve una cadena de caracteres que contiene una expresin de caracteres especificada que se repite un determinado nmero de veces. Sintaxis REPLICATE(cExpresin, nVeces) Tipos devueltos Character Argumentos cExpresin Especifica la expresin de caracteres que se replica. nVeces Especifica el nmero de veces que se replica la expresin de caracteres. Comentarios En Visual FoxPro y en FoxPro para Windows, la longitud mxima de la cadena de caracteres resultante est limitada por la cantidad de memoria disponible.

REPORT (Comando)
Muestra o imprime un informe bajo el control de un archivo de definicin de informe creado con MODIFY REPORT o CREATE REPORT. Sintaxis REPORT FORM NombreArchivo1 | ? [ENVIRONMENT] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [HEADING cTextoEncabezado] [NOCONSOLE] [NOOPTIMIZE] [PLAIN] [RANGE nPginaInicio [, nPginaFinal]] [PREVIEW [WINDOW NombreVentana] [NOWAIT]] [TO PRINTER [PROMPT] | TO FILE NombreArchivo2 [ASCII]] [NAME NombreObjeto] [SUMMARY] Argumentos NombreArchivo1 Especifica el nombre del archivo de definicin de informe que se va a imprimir. ? Muestra el cuadro de dilogo Abrir, en el que puede elegir un archivo de informe. ENVIRONMENT Se incluye por compatibilidad con informes de las versiones 2.x. Para restaurar el entorno de datos asociado a un informe de Visual FoxPro, establezca la propiedad AutoOpenTables del entorno de datos como verdadera (.T.), que es el valor predeterminado. Para asegurarse de que el entorno del informe se cierra cuando termina de imprimirse el informe, establezca la propiedad AutoCloseTables del entorno de datos como verdadera (.T.), que es el valor predeterminado. En el caso de informes de otras versiones anteriores de FoxPro convertidos a la actual, la inclusin de ENVIRONMENT abrir y restaurar todas las tablas y las relaciones en el entorno de datos incluso si AutoOpenTables est establecida en falso (.F.). Cuando crea o modifica informes, puede guardar el entorno de datos actual de Visual FoxPro con el archivo de definicin de informe. Al guardar el entorno de datos de Visual FoxPro se situarn registros 69

adicionales en la tabla de definicin de informe para todas las tablas y archivos de ndice abiertos, el orden de ndice y las relaciones entre las tablas. Alcance Puede especificar un alcance de registros incluidos en el informe. Solamente se incluyen en el informe los registros comprendidos dentro del rango. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. Para obtener ms informacin acerca de las clusulas de alcance, vea Clusulas de alcance. El alcance predeterminado de REPORT es ALL (todos los registros). FOR lExpresin1 Imprime solamente los datos incluidos en los registros para los cuales lExpresin1 se evala como verdadera (.T.). La inclusin de FOR le permite filtrar los registros que no desea imprimir. Rushmore optimizar REPORT FOR si lExpresin1 es una expresin optimizable. Para obtener el mejor rendimiento, utilice expresiones optimizables en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los datos se imprimen mientras la expresin lgica lExpresin2 se evale como verdadera (.T.). HEADING cTextoEncabezado Especifica texto para que se incluya un encabezado adicional en cada pgina del informe. Si se incluyen a la vez HEADING y PLAIN, la opcin PLAIN tendr preferencia. NOCONSOLE Suprime el eco de un informe a la ventana principal de Visual FoxPro o a una ventana definida por el usuario cuando el informe se est imprimiendo o enviando a un archivo. NOOPTIMIZE Para impedir la optimizacin Rushmore de REPORT, incluya NOOPTIMIZE. PLAIN Especifica que el encabezado de pgina aparece solamente al principio del informe. RANGE nPginaInicio [, nPginaFinal] Especifica el rango de pginas que se van a imprimir. nPginaInicio especifica la primera pgina impresa; nPginaFinal especifica la ltima pgina impresa. Si se omite nPginaFinal, el nmero de la ltima impresa ser el predeterminado: 9.999. PREVIEW [WINDOW NombreVentana] Muestra el informe en el modo de Vista previa en lugar de enviarlo a la impresora. Para imprimir un informe, es necesario emitir REPORT con TO PRINTER. Tenga en cuenta que las variables del sistema se pasan por alto cuando se incluye PREVIEW. Para especificar una ventana en la que realizar una vista previa del informa, incluya la clusula opcional WINDOW. NombreVentana puede ser el nombre de una ventana creada con DEFINE WINDOW o un formulario. Puede incluir la clusula opcional NOWAIT de modo que en tiempo de ejecucin Visual FoxPro no espere a que se cierre la ventana Vista previa antes de continuar con la ejecucin del programa. En su lugar, Visual FoxPro contina la ejecucin del programa mientras est abierta la ventana Vista previa. En una aplicacin distribuida, asegrese de que el men Ver est disponible. Si se cierra la barra de herramientas Vista previa, no podr restaurarse a menos que est disponible el men Ver. TO PRINTER [PROMPT] Enva un informe a la impresora. En Visual FoxPro, puede incluir la clusula opcional PROMPT para mostrar un cuadro de dilogo antes de que comience la impresin. La configuracin de impresora que puede ajustar dependen del controlador de impresora instalado en este momento. Site la palabra clave PROMPT inmediatamente despus de TO PRINTER. TO FILE NombreArchivo2 [ASCII] Especifica el archivo de texto al que enva un informe. Se usa el controlador de impresora actual cuando el informe se enva al archivo de texto. El archivo creado cuando incluye TO FILE tiene la extensin predeterminada .TXT.

70

Puede incluir la clusula opcional ASCII para crear un archivo de texto ASCII a partir del archivo de definicin de informe. Sin la clusula ASCII, se escriben cdigos PostScript y otros cdigos de impresora al archivo de texto. Los grficos, lneas, rectngulos o rectngulos redondeados de la definicin del informe no aparecen en el archivo de texto ASCII. El nmero de columnas y filas de cada pgina del archivo de texto ASCII est determinado por el contenido de las variables de memoria del sistema _ASCIICOLS y _ASCIIROWS. Los valores predeterminados para _ASCIICOLS y _ASCIIROWS son 80 columnas y 63 filas, respectivamente. Estos valores corresponden a la pgina vertical estndar. NAME NombreObjeto Especifica un nombre de variable de objeto para el entorno de datos de un informe. El entorno de datos y los objetos del entorno de datos tienen propiedades y mtodos, por ejemplo AddObject, que es necesario establecer o llamar en tiempo de ejecucin. La variable de objeto ofrece acceso a estas propiedades y mtodos. Si no especifica NAME, Visual FoxPro usar de forma predeterminada el nombre del archivo de informe al que se puede hacer referencia en el cdigo asociado a los eventos. SUMMARY Suprime la impresin de lneas de detalle. Solamente se imprimen totales y subtotales. Comentarios La extensin predeterminada de un archivo de definicin de informe es .FRX. Si el archivo de definicin de informe est en una unidad distinta de la unidad o el directorio predeterminados, deber incluir tambin la ruta de acceso con el nombre del archivo.

RETURN (Comando)
Devuelve el control del programa al programa que llama. Sintaxis RETURN [eExpresin | TO MASTER | TO NombreProcedimiento] Argumentos eExpresin Especifica una expresin devuelta al programa que llama. Si omite RETURN o la expresin de retorno, se devolver automticamente el valor verdadero (.T.). TO MASTER Devuelve el control al programa que llama de mayor nivel. TO NombreProcedimiento Especifica el procedimiento al que se devuelve el control. Comentarios RETURN termina la ejecucin de un programa, procedimiento o funcin. El control se devuelve al programa que llama, el programa que llama de mayor nivel, otro programa o la ventana Comandos. Cuando se ejecuta RETURN, Visual FoxPro libera las variables de memoria PRIVATE. RETURN se sita usualmente al final de un programa, procedimiento o funcin para devolver el control a un programa de nivel superior. No obstante, se ejecutar un RETURN implcito si se omite RETURN.

RIGHT( ) (Funcin)
Devuelve el nmero especificado de caracteres del lado derecho de una cadena de caracteres. Sintaxis RIGHT(cExpresin, nCaracteres) Tipos devueltos 71

Character Argumentos cExpresin Especifica la expresin de caracteres cuyos caracteres ms a la derecha se devuelven. nCaracteres Especifica el nmero de caracteres devueltos a partir de la expresin de caracteres. RIGHT( ) devuelve toda la expresin de caracteres si nCaracteres es mayor que la longitud de cExpresin. RIGHT( ) devuelve una cadena vaca si nCaracteres es negativo o 0. Comentarios Los caracteres se devuelven comenzando por el ltimo carcter de la derecha y continuando durante un nmero concreto de caracteres.

RLOCK( ) (Funcin)
Intenta bloquear uno o varios registros de una tabla. Sintaxis RLOCK([nreaTrabajo | cAliasTabla] | [cListaNmerosRegistros, nreaTrabajo | cAliasTabla]) Tipos devueltos Logical Argumentos nreaTrabajo | cAliasTabla Especifica el nmero del rea de trabajo o el alias de tabla para una tabla abierta en otra rea de trabajo. Si no especifica un rea de trabajo o alias, RLOCK( ) intentar bloquear el registro actual de la tabla del rea de trabajo seleccionada actualmente. cListaNmerosRegistros Especifica que RLOCK( ) intenta bloquear mltiples registros. La expresin de caracteres cListaNmeroRegistros especifica uno o varios nmeros de registro, separados por comas, que RLOCK( ) intenta bloquear. Por ejemplo, para intentar bloqueos de registro en los primeros 4 registros de la tabla, cListaNmeroRegistros contendr 1, 2, 3, 4. Para bloquear mltiples registros, es necesario activar SET MULTILOCKS e incluir el nmero del rea de trabajo (nreaTrabajo) o el alias (cAliasTabla) de la tabla en la que intenta bloquear los registros. Tambin puede bloquear varios registros moviendo el puntero de registro al registro que quiera bloquear, emitiendo RLOCK( ) o LOCK( ) y repitiendo luego este proceso para registros adicionales. En Visual FoxPro, puede especificar 0 como nmero de registro. Especificar 0 le permite intentar bloquear el encabezado de la tabla. Importante: Mantenga el encabezado de la tabla bloqueado por el perodo de tiempo mnimo porque otros usuarios no pueden agregar registros a la tabla cuando el encabezado est bloqueado. Libere el bloqueo del encabezado de la tabla con UNLOCK RECORD 0, UNLOCK o UNLOCK ALL. Si todos los registros especificados en cListaNmerosRegistros logran bloquearse, RLOCK( ) devolver verdadero (.T.). Si uno o ms de los registros especificados en cListaNmerosRegistros no puede bloquearse, RLOCK( ) devuelve falso (.F.) y no se bloquear ningn registro. En cualquier caso, los bloqueos de registro existentes, permanecern en vigor. El bloqueo de varios registros es un proceso aditivo: al situar bloqueos de registro adicionales no liberar los bloqueos de registro existentes.

72

Desde una perspectiva de rendimiento, es siempre ms rpido bloquear la tabla completa que bloquear un nmero de registros, aunque sea pequeo. Comentarios RLOCK( ) es idntico a LOCK( ). Si se logra establecer el bloqueo o los bloqueos, RLOCK( ) devuelve verdadero (.T.). Los registros bloqueados estn disponibles para acceso tanto de lectura como de escritura por el usuario que efectu los bloqueos y estarn disponibles nicamente para acceso de lectura para todos los dems usuarios de la red. La ejecucin de RLOCK( ) no garantiza que consigan efectuarse el o los bloqueos que se intenten. No podr efectuar un bloqueo sobre un registros que ya est bloqueado por otro usuario o sobre una tabla bloqueada por otro usuario. Si no pueden efectuarse el o los bloqueos por alguna razn, RLOCK( ) devolver falso (.F.). De forma predeterminada, RLOCK( ) hace un intento de bloquear un registro, Utilice SET REPROCESS para reintentar automticamente un bloqueo de registro cuando falle el primer intento. SET REPROCESS controla el nmero de intentos de bloqueo o durante cuanto tiempo se harn intentos de bloqueo cuando fracasa el primer intento. Para ms informacin sobre SET REPROCESS y el bloqueo de tabla, vea SET REPROCESS. SET MULTILOCKS determina si puede bloquear varios registros de una tabla. Si MULTILOCKS est OFF (el valor predeterminado), nicamente puede bloquear un solo registro de una tabla. Si MULTILOCKS est ON, podrn bloquearse mltiples registros de una tabla. Para ms informacin, vea SET MULTILOCKS. Un registro de una tabla puede desbloquearlo nicamente el usuario que lo bloque. Los bloqueos de registro pueden liberarse emitiendo UNLOCK, cerrando la tabla o saliendo de Visual FoxPro. UNLOCK puede utilizarse para liberar los bloqueos de registro del rea de trabajo actual, un rea de trabajo concreta o de todas las reas de trabajo. Para ms informacin al respecto, vea UNLOCK. Alternando MULTILOCKS de ON a OFF o de OFF a ON, se realiza UNLOCK ALL implcitamente: se liberarn todos los bloqueos de registro de todas las reas de trabajo. Las tablas pueden cerrase con USE, CLEAR ALL o CLOSE DATABASES. Intenta bloquear uno o varios registros de una tabla.

ROUND( ) (Funcin)
Devuelve una expresin numrica redondeada a un nmero especificado de cifras decimales. Sintaxis ROUND(nExpresin, nLugaresDecimales) Tipos devueltos Numeric Argumentos nExpresin Especifica la expresin numrica cuyo valor desea redondear. nLugaresDecimales Especifica el nmero de cifras decimales con los que se redondea nExpresin. Si nLugaresDecimales es negativo, ROUND( ) devuelve un nmero entero que contiene nLugaresDecimales ceros a la izquierda del separador decimal. Por ejemplo, si nLugaresDecimales es 2, la primera y la segunda cifra a la izquierda del separador decimal del valor sern cero.

73

Comentarios El valor devuelto por ROUND( ) tiene el mismo nmero de lugares decimales que nLugaresDecimales. ROUND( ) pasa por alto el nmero de cifras decimales especificado por SET DECIMALS.

RTRIM( ) (Funcin)
Devuelve la expresin de caracteres especificada con todos los espacios en blanco finales recortados. Sintaxis RTRIM(cExpresin) Tipos devueltos Character Argumentos cExpresin Especifica la expresin de caracteres de la cual se deben recortar los espacios en blanco finales. Comentarios RTRIM( ) puede utilizarse para asegurarse de que se eliminan los espacios en blanco de los datos introducidos por un usuario. La funcin RTRIM( ) es idntica a TRIM( ).

RUN | ! (Comando)
Ejecuta comandos o programas operativos externos. Sintaxis RUN [/N [K]] ComandoMS-DOS | NombrePrograma O bien ! [/N [K]] ComandoMS-DOS | NombrePrograma Argumentos ComandoMS-DOS Especifica el comando de MS-DOS que se va a ejecutar. Consulte su documentacin de MS-DOS para obtener ms informacin sobre los comandos de MS-DOS disponibles. NombrePrograma Especifica el programa o la aplicacin que se va a ejecutar. Se puede especificar un programa o una aplicacin basado en Windows o en MS-DOS. /N [K] Especifica NOWAIT. Incluya la letra N (no sustituya N por un valor numrica y no incluya K) para ejecutar otra aplicacin basada en Windows. Comentarios RUN puede emitirse desde dentro de la ventana Comandos o desde un programa. Importante: Para utilizar RUN, es necesario tener el archivo de sistema operativo COMMAND.COM en el directorio actual, o bien en un lugar donde el parmetro MS-DOS COMSPEC pueda encontrarlo. Precaucin: No utilice RUN para ejecutar programas de reorganizacin de disco como CHKDSK desde dentro de Visual FoxPro. Estos programas modifican el contenido de su disco de forma que pueden impedir que Visual FoxPro funcione correctamente. RUN y Visual FoxPro: Cuando se utiliza RUN para ejecutar programas externos a Visual FoxPro y FoxPro para Windows, los programas se buscan de una forma ligeramente distinta a FoxPro para MSDOS. 74

Si el programa que especifica en RUN no tiene una extensin, Visual FoxPro y FoxPro para Windows buscan primero a lo largo de la ruta de acceso de MS-DOS un programa PIF (archivo de informacin de programa) con el nombre que haya especificado. Un PIF le permite ejecutar bajo Windows un programa no desarrollado para Windows. Puede especificar parmetros para el programa, si se ejecuta en una ventana o a pantalla completa, la cantidad de memoria asignada para el programa, etc. Si se encuentra el PIF, se ejecutar el programa especificado en el PIF con los parmetros PIF. Si no se encuentra un PIF, entonces se buscar en la ruta de acceso DOS un archivo ejecutable con el nombre que especifique. Cuando no se encuentra un PIF, Visual FoxPro y FoxPro para Windows utilizan FOXRUN.PIF, un PIF instalado en los directorios de Visual FoxPro y FoxPro para Windows. FOXRUN.PIF est configurado para ejecutar programas en una ventana. Puede modificar FOXRUN.PIF para ejecutar programas con otra configuracin. FOXRUN.PIF: FOXRUN.PIF le permite ejecutar programas y comandos MS-DOS y Windows desde dentro de Visual FoxPro y FoxPro para Windows. FOXRUN.PIF debe estar en el mismo directorio que VFP.EXE en Visual FoxPro y FOXPROW.EXE en FoxPro para Windows. /N significa NOWAIT. En Visual FoxPro y FoxPro para Windows, incluya la letra N (no sustituya N por un valor numrico y no incluya K) para ejecutar otra aplicacin basada en Windows. Por ejemplo, el comando siguiente abre el accesorio Mapa de caracteres de Windows: ! /N CHARMAP.EXE Este ejemplo abre el selector de colores de Windows del Panel de control de Windows. ! /N CONTROL COLOR Una aplicacin basada en Windows que se ejecute con RUN /N O ! /N se comportar de la misma forma que lo hara si la abriera mediante el Administrador de programas o el Administrador de archivos. Puede conmutar entre la aplicacin y Visual FoxPro y FoxPro para Windows mediante las operaciones habituales en Windows. Puede incluir un valor numrico opcional inmediatamente despus de /N para especificar como se abrir la ventana de la aplicacin. No incluya ningn espacio entre /N y el valor numrico. La siguiente tabla indica el valor numrico que puede incluir y describe el estado de la aplicacin basada en Windows en el momento en que se abre. Valor 1 2 3 4 7 Atributos de la aplicacin Activa y tamao normal Activa y minimizada Activa y maximizada Inactiva y tamao normal Inactiva y minimizada

Ejecucin de programas MS-DOS en Visual FoxPro: De forma predeterminada, ejecuta el programa MS-DOS externo especificado en una ventana. Mientras que el programa o comando MS-DOS se est ejecutando, el ttulo de la ventana ser Comando RUN de FoxPro. En FoxPro para Windows, despus de que el programa o comando externo termine de ejecutarse, el ttulo de la ventana cambiar a Inactivo Comando RUN de FoxPro. En Visual FoxPro, la ventana del comando Run de FoxPro se cerrar una vez terminada la ejecucin del comando o programa externo. Puede utilizar el editor PIF de Windows para personalizar FOXRUN.PIF: Puede editar el PIF para especificar si la ventana Inactivo Comando RUN de FoxPro se queda abierta (el valor predeterminado en FoxPro para Windows) o se cierra (el valor predeterminado en Visual FoxPro) con la casilla Cerrar ventana al salir. Tambin puede abrir programas externos en una pantalla completa seleccionando Pantalla completa, asignar memoria para el programa, etc. Consideraciones sobre la memoria: De forma predeterminada, FOXRUN.PIF asigna un mnimo de 256 KB de memoria para ejecutar un comando o programa externo. Si no tiene 256 KB de memoria con75

vencional libre, Visual FoxPro y FoxPro para Windows mostrar un mensaje de error. Para corregirlo, pruebe estos procedimientos, en solitario o conjuntamente: Cierre las aplicaciones y los archivos para liberar memoria adicional. Modifique FOXRUN.PIF para reducir la cantidad de memoria necesaria en el cuadro de texto KB Requeridos.

Si el comando externo necesita ms de 256 KB, MS-DOS mostrar un mensaje de error en la ventana Comando RUN de FoxPro. Para corregirlo, modifique el archivo FOXRUN.PID para aumentar la cantidad de memoria necesaria en el cuadro de texto KB Requeridos.

SCAN ... ENDSCAN (Comando)


Mueve el puntero de registro por la tabla seleccionada y ejecuta un bloque de comandos para cada uno de los registros que cumple las condiciones especificadas. Sintaxis SCAN [NOOPTIMIZE] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [Comandos] [LOOP] [EXIT] ENDSCAN Argumentos NOOPTIMIZE Impide la optimizacin Rushmore de SCAN. Alcance Especifica un conjunto de registro a explorar. Slo se examinarn los registros que se encuentren dentro del rango. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro, y REST. Para obtener ms informacin sobre clusulas de alcance, vea Clusulas de alcance. El alcance predeterminado para SCAN es todos los registros (ALL). FOR lExpresin1 Ejecuta comandos solamente para los registros para los cuales lExpresin1 evala como verdadera (.T.). La inclusin de la clusula FOR le permite filtrar los registros que no desea explorar. Si lExpresin1 es una expresin optimizable, Rushmore optimizar una consulta creada con SCAN ... FOR. Para mejorar el rendimiento, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los comandos se ejecutan siempre y cuando lExpresin2 se evale como verdadera (.T.). Comandos Especifica los comandos de Visual FoxPro que desea ejecutar. LOOP Devuelve el control directamente a SCAN. LOOP puede situarse en cualquier lugar entre SCAN y ENDSCAN. EXIT Transfiere el control del bucle SCAN ... ENDSCAN al primer comando que sigue inmediatamente a ENDSCAN. EXIT puede situarse en cualquier lugar entre SCAN y ENDSCAN. ENDSCAN Indica el final del procedimiento SCAN. Comentarios SCAN avanza automticamente el puntero de registro al siguiente registro que cumple las condiciones especificadas y ejecuta el bloque de comandos.

76

Puede situar comentarios despus de ENDSCAN en la misma lnea. Los comentarios se pasan por alto durante la compilacin y ejecucin del programa.

SCATTER (Comando)
Copia datos del registro actual a un conjunto de variables de memoria o a una matriz. Sintaxis SCATTER [FIELDS ListaNombresCampos | FIELDS LIKE Estructura | FIELDS EXCEPT Estructura] [MEMO] TO NombreMatriz | TO NombreMatriz BLANK | MEMVAR | MEMVAR BLANK | NAME NombreObjeto Argumentos FIELDS ListaNombresCampos Especifica los campos que desea transferir a las variables de memoria o a la matriz. Si omite FIELDS ListaNombresCampos, se transferirn todos los campos. La lista de campos puede contener campos memo si sigue la lista de campos con la palabra clave MEMO. Los campos de tipo general e imagen se pasan por alto siempre en SCATTER, aunque incluya la palabra clave MEMO. FIELDS LIKE Estructura | FIELDS EXCEPT Estructura Puede transferir selectivamente campos a variables de memoria o a una matriz si incluye la clusula LIKE o EXCEPT o ambas. Si incluye LIKE Estructura, los campos que coinciden con Estructura se transfieren a las variables de memoria o a la matriz. Si incluye EXCEPT Estructura, se transfieren a las variables de memoria o a la matriz todos los campos que coinciden con Estructura. Estructura acepta caracteres comodn. Por ejemplo, para transferir todos los campos que empiezan por las letras A y P a las variables de memoria o a la matriz, use: SCATTER FIELDS LIKE A*,P* TO mimatriz La clusula LIKE puede combinarse con la clusula EXCEPT: SCATTER FIELDS LIKE A*,P* EXCEPT PARTNO* TO mimatriz MEMO Especifica que la lista de campos contiene uno o varios campos memo. De forma predeterminada, los campos memo se pasan por alto en SCATTER. Debe tener memoria suficiente para diseminar campos memo grandes en variables de memoria o en una matriz. Visual FoxPro mostrar un mensaje de error si no tiene suficiente memoria. Si un campo memo es demasiado grande y no cabe en memoria, ni se ni los dems campos memo de la lista de campos se diseminarn. Si un campo memo no se disemina, su variable de memoria o elemento de matriz tomar el valor falso (.F.). TO NombreMatriz Especifica qu matriz se copia el contenido de los registros. Comenzando por el primer campo, SCATTER copia en orden secuencial el contenido de cada campo en cada elemento de matriz. Si la matriz tiene ms elementos que el nmero de campos, los elementos de matriz sobrantes no se modificarn. Si la matriz no existe, o si tiene menos elementos que el nmero de campos, se crear automticamente una nueva matriz. Los elementos de matriz tendrn el mismo tamao y los mismos tipos de datos que los campos correspondientes TO NombreMatriz BLANK Crea una matriz con elementos vacos que tendrn el mismo tipo y tamao que los campos de la tabla MEMVAR Disemina los datos en un conjunto de variables de memoria en lugar de en una matriz. SCATTER crea una variable de memoria por cada campo de la tabla y rellena cada variable de memo-

77

ria con datos del campo correspondiente del registro actual, asignando a la variable el mismo nombre, tipo y tamao que su campo. Se crea una variable de memoria para cada campo en la lista de campos, si se incluye una lista de campos. Incluya delante del nombre de la variable de memoria el calificador M. para referirse a una variable de memoria que tenga el mismo nombre que un campo de la tabla actual. Importante: No incluya TO con MEMVAR. Si incluye TO Visual FoxPro crear una matriz llamada MEMVAR. MEMVAR BLANK Crea un conjunto de variables de memoria vacas. A cada variable de memoria se le asignar el mismo nombre, tipo de dato y tamao que su campo. Si se incluye una lista de campos, se crear una variable de memoria para cada campo de la lista de campos. NAME NombreObjeto Crea un objeto cuyas propiedades tienen los mismos nombres que los campos de la tabla. Los valores posibles de cada una de las propiedades del objeto son el contenido de los campos de la tabla. No se crean propiedades para los campos de tipo memo o general de la tabla. Para hacer referencia a una propiedad en un objeto que tiene el mismo nombre que una tabla abierta, escriba delante del nombre de la propiedad el cualificador M. Por ejemplo: USE customer SCATTER NAME customer ? customer.company && Devuelve el valor de la tabla ? M.customer.company && Devuelve el valor de propiedad del objeto Comentarios SCATTER y COPY TO ARRAY son parecidos. COPY TO ARRAY copia mltiples registros en una matriz, mientras que SCATTER copia solamente un registro en una matriz o en un conjunto de variables de memoria. SCATTER crea automticamente la matriz o las variables de memoria en caso de que no existan todava. Utilice GATHER para copiar variables de memoria o elementos de matriz a registros de tabla.

SCROLL (Comando)
Desplaza una zona de la ventana principal de Visual FoxPro o de una ventana definida por el usuario hacia arriba, hacia abajo, a la izquierda o a la derecha. Sintaxis SCROLL nFila1, nColumna1, nFila2, nColumna2, nFilasDesplazadas [, nColumnasDesplazadas] Argumentos nFila1, nColumna1, nFila2, nColumna2 Especifica la regin rectangular donde se producir el desplazamiento en la ventana principal de Visual FoxPro o en la ventana definida por el usuario que est activa. nFila1, nColumna1 especifica la esquina superior izquierda de la regin, y nFila2, nColumna2 especifica la esquina inferior derecha. nFilasDesplazadas Especifica cuntas filas dentro de la regin rectangular se desplazarn hacia arriba o hacia abajo. Si la expresin numrica nFilasDesplazadas es positiva, Visual FoxPro desplazar hacia arriba el nmero de filas. Si nFilasDesplazadas es negativo, Visual FoxPro desplazar hacia abajo el nmero de filas. Si nFilasDesplazadas es 0 y omite nColumnasDesplazadas, Visual FoxPro borrar la regin rectangular.

78

nColumnasDesplazadas Especifica cuntas columnas dentro de la regin rectangular se desplazarn a la izquierda o a la derecha. Si la expresin numrica nColumnasDesplazadas es positiva, Visual FoxPro desplazar hacia la derecha el nmero de columnas. Si nColumnasDesplazadas es negativo, Visual FoxPro desplazar hacia la izquierda el nmero de columnas. Si se incluyen ambas nFilasDesplazadas y nColumnasDesplazadas, Visual FoxPro desplazar la zona diagonalmente.

SEEK (Comando)
Busca en una tabla la primera aparicin de un registro cuya expresin clave de ndice coincida con una expresin general, y despus mueve el puntero de registro al registro coincidente. Sintaxis SEEK eExpresin [ORDER nNmerondice | NombreArchivondiceIDX | [TAG] NombreEtiqueta [OF NombreArchivoCDX] [ASCENDING | DESCENDING]] [IN nreaTrabajo | cAliasTabla] Argumentos eExpresin Especifica la expresin de ndice que quiere que busque SEEK. eExpresin puede ser el valor nulo. ORDER nNmerondice Especifica el nmero del archivo o etiqueta de ndice que se utiliza para buscar la clave de ndice. nNmerondice hace referencia a los archivos de ndice tal y como estn incluidos en USE o SET INDEX. Los archivos .IDX abiertos se numeran primero en el orden en que aparecen en USE o SET INDEX. A continuacin se numeran las etiquetas del archivo .CDX estructural (si existe) en el orden en que se crearon. Por ltimo, se numeran las etiquetas de cualquier archivo .CDX independiente abierto en el orden en que se crearon. Consulte SET ORDER para obtener ms informacin sobre la numeracin de ndices. ORDER NombreArchivondiceIDX Especifica un archivo .IDX utilizado para buscar la clave de ndice. ORDER [TAG] NombreEtiqueta [OF NombreArchivoCDX] Especifica una etiqueta de un archivo .CDX que se utiliza para buscar la clave de ndice. El nombre de la etiqueta de ndice puede proceder de un archivo .CDX estructural o de cualquier archivo .CDX independiente abierto. Si existen nombres de etiqueta idnticos en archivos .CDX independientes abiertos .CDX, use OF NombreArchivoCDX para especificar el archivo .CDX que contiene la etiqueta. Nota: El archivo .IDX tiene preferencia en caso de que existan nombres de etiquetas y archivos .IDX duplicados. ASCENDING Especifica que se busca en la tabla en orden ascendente. DESCENDING Especifica que se busca en la tabla en orden descendente. IN nreaTrabajo Especifica el nmero del rea de trabajo de la tabla donde se busca. IN cAliasTabla Especifica el alias de la tabla donde se busca. Si omite IN nreaTrabajo y IN cAliasTabla, se busca en la tabla del rea de trabajo seleccionada actualmente. Comentarios Puede utilizar SEEK nicamente con tablas indexadas y puede buscar nicamente por la expresin clave ndice. La coincidencia debe ser exacta a no ser que SET EXACT est OFF.

79

Si SEEK encuentra un registro con una clave de ndice coincidente, RECNO( ) devolver el nmero de registro del registro coincidente, FOUND( ) devolver verdadero (.T.) y EOF( ) devolver falso (.F.). Si no encuentra ninguna clave coincidente, RECNO( ) devolver el nmero de registros de la tabla ms 1, FOUND( ) devolver falso (.F.) y EOF( ) devolver verdadero (.T.). Si SET NEAR est ON, el puntero de registro se posicionar inmediatamente despus del registro con la clave de ndice coincidente ms cercana. Si SET NEAR est OFF el puntero de registro se posicionar al final del archivo. En cualquier caso, RECNO(0) devolver el nmero de registro del registro ms cercano.

SELECT (Comando)
Activa el rea de trabajo especificada. Sintaxis SELECT nreaTrabajo | cAliasTabla Argumentos nreaTrabajo Especifica el rea de trabajo que se va a activar. Si nreaTrabajo es 0, se activar el rea de trabajo no utilizada cuyo nmero sea inferior. cAliasTabla Especifica un rea de trabajo que contiene una tabla abierta para activar. cAliasTabla es el alias de la tabla abierta. Tambin puede incluir una letra de la A a la J para que cAliasTabla active una de las diez primeras reas de trabajo. Comentarios De forma predeterminada, el rea de trabajo nmero 1 est activa cuando se inicia Visual FoxPro. Nota: Los campos de las tablas de cualquier rea de trabajo pueden incluirse en comandos y funciones de Visual FoxPro. Utilice los formatos siguientes para acceder a los campos de una tabla abierta en un rea de trabajo distinta de la actual: alias.campo o alias -> campo.

SET CENTURY (Comando)


Determina si Visual FoxPro mostrar o no el siglo en las expresiones Date. Sintaxis SET CENTURY ON | OFF | TO [nSiglo [ROLLOVER nAo]] Argumentos ON Especifica un formato de ao con cuatro dgitos que ocupa 10 caracteres (incluyendo los delimitadores de fecha). OFF (Predeterminado) Especifica un formato de ao de dos dgitos que ocupa ocho caracteres y asume el siglo veinte para los clculos de fechas. TO nSiglo Un nmero de 1 a 99 que especifica el siglo actual. Cuando una fecha tiene un ao de dos cifras, nSiglo determina en qu siglo se encuentra el ao. Para restaurar el siglo actual predeterminado, emita SET CENTURY TO sin ningn argumento adicional. SET CENTURY ON SET CENTURY TO 19 ? {02/16/56} && Muestra 02/16/1956 80

SET CENTURY TO 20 ? {02/16/56} && Muestra 02/16/2056 ROLLOVER nAo Un nmero de 0 a 99 que especifica el ao en el termina el siglo actual y a partir del cual comenzar el prximo siglo. Emita SET CENTURY TO sin ningn argumento adicional para restaurar el ao de cambio de siglo a 0. SET CENTURY ON SET CENTURY TO 19 ROLLOVER 60 ? {02/16/96} && Muestra 02/16/1996 ? {02/16/56} && Muestra 02/16/2056 Comentarios Utilice SET CENTURY para especificar cmo se mostrarn las variables y las funciones de fecha. SET CENTURY tiene como alcance la sesin de datos actual.

SET DATE (Comando)


Especifica el formato para mostrar las expresiones Date y DateTime. Sintaxis SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | TAIWAN | USA | MDY | DMY | YMD | SHORT | LONG Comentarios A continuacin se muestran los valores y los formatos de fecha resultantes: Valor AMERICAN ANSI BRITISH/FRENCH GERMAN ITALIAN JAPAN TAIWAN USA MDY DMY YMD SHORT LONG Formato mm/dd/aa aa.mm.dd dd/mm/aa dd.mm.aa dd-mm-aa aa/mm/dd aa/mm/dd mm-dd-aa mm/dd/aa dd/mm/aa aa/mm/dd El formato corto de fecha determinado en la configuracin de fecha corta del Panel de Control de Windows. El formato largo de fecha determinado en la configuracin de fecha larga del Panel de Control de Windows.

El valor predeterminado es AMERICAN. El valor SET DATE tambin determina cmo aparecer la fecha en las expresiones DateTime. Si se establece DATE en SHORT o en LONG, se ignorarn los valores establecidos para SET CENTURY, SET MARK, SET HOURS, y SET SECONDS. SET DATE tiene como alcance la sesin actual de datos.

81

SET DECIMALS (Comando)


Especifica el nmero de decimales que se mostrarn en las expresiones numricas. Sintaxis SET DECIMALS TO [nLugaresDecimales] Argumentos nLugaresDecimales Especifica el nmero mnimo de decimales a mostrar. El valor predeterminado es dos decimales. El nmero mximo de decimales es 18 y el mnimo es cero. Comentarios SET DECIMALS especifica el nmero mnimo de decimales que se utilizarn para mostrar los resultados de divisin, multiplicacin, y funciones trigonomtricas y financieras. SET DECIMALS tiene como alcance la sesin actual de datos.

SET DELETED (Comando)


Especifica si Visual FoxPro procesar o no los registros marcados para su eliminacin y si estn disponibles o no para su uso en otros comandos. Sintaxis SET DELETED ON | OFF Argumentos ON Especifica que los comandos que operan sobre registros (incluyendo los registros de las tablas relacionadas) utilizando un alcance ignoran los registros marcados para su eliminacin. OFF (Predeterminado) Especifica que a los registros marcados para su eliminacin se puede acceder mediante comandos que operan sobre registros (incluyendo los registros de las tablas relacionadas) utilizando un alcance. Comentarios Las consultas que utilizan DELETED( ) para comprobar el estado de los registros pueden optimizarse utilizando la tecnologa Rushmore si la tabla est indexada sobre DELETED( ). Puede marcar registros para su eliminacin emitiendo DELETE - SQL o DELETE, o bien eligiendo Eliminar registros en el men Tabla desde una ventana Examinar o Editar. Puede recuperar registros emitiendo RECALL o eligiendo Desmarcar registros en el men Tabla desde una ventana Examinar o Editar. Importante: SET DELETED se pasa por alto si el alcance predeterminado del comando es el registro actual o si incluye un alcance de un nico registro. INDEX y REINDEX siempre pasan por alto SET DELETED e indexan todos los registros de la tabla. SET DELETED tiene como alcance la sesin actual de datos.

SET EXCLUSIVE (Comando)


Especifica si Visual FoxPro abre los archivos de tabla para uso exclusivo o compartido en una red. Sintaxis SET EXCLUSIVE ON | OFF 82

Argumentos ON (El valor predeterminado para la sesin de datos global) Limita la posibilidad de acceso a una tabla abierta en una red nicamente al usuario que la abri. La tabla no es accesible para otros usuarios de la red. A diferencia de FLOCK( ), SET EXCLUSIVE ON impide tambin que otros usuarios tengan acceso de slo lectura. Tambin puede abrirse un archivo en una red para uso exclusivo incluyendo la clusula EXCLUSIVE con el comando USE. No es necesario realizar bloqueo de registro o archivo en una tabla abierta para uso exclusivo. Al abrir una tabla para uso exclusivo se asegura de que otros usuarios no podrn cambiar el archivo. Algunos comandos no pueden ejecutarse hasta que se abra una tabla para uso exclusivo. Estos comandos son INSERT, INSERT BLANK, MODIFY STRUCTURE, PACK, REINDEX y ZAP. OFF (El valor predeterminado para la sesin de datos privada) Permite que una tabla abierta en una red se pueda compartir y modificar por cualquier usuario de la red. Comentarios Al cambiar el valor de SET EXCLUSIVE no cambiar el estado de las tablas abiertas previamente. Por ejemplo, si una tabla se abre con SET EXCLUSIVE ON y SET EXCLUSIVE se cambia posteriormente a OFF, la tabla mantendr su estado de uso exclusivo. SET EXCLUSIVE tiene como alcance la sesin actual de datos.

SET FILTER (Comando)


Especifica una condicin que deben cumplir los registros de la tabla actual para estar accesibles. Sintaxis SET FILTER TO [lExpresin] Argumentos lExpresin Especifica la condicin que deben cumplir los registros. Si la tabla actual est indexada por uno o varios campos especificados en lExpresin, la tecnologa Rushmore de Visual FoxPro optimizar las consultas basadas en el campo o los campos. Comentarios Una vez emitido SET FILTER, solamente estn disponibles en la tabla los registros que satisfacen la condicin especificada con la expresin lgica lExpresin. Todos los comandos que acceden a la tabla respetan la condicin SET FILTER. Se puede definir un filtro distinto para cada tabla abierta. La condicin especificada por SET FILTER no se evala hasta que el puntero de registro se mueve en la tabla. Al emitir SET FILTER TO sin lExpresin se desactiva el filtro para la tabla actual. SELECT - SQL no respeta la condicin de filtro actual.

SET INDEX (Comando)


Abre uno o ms archivos de ndice para utilizarlos con la tabla actual. Sintaxis SET INDEX TO [ListaArchivosndice | ? ] [ORDER nNmerondice | NombreArchivondiceIDX | [TAG] NombreEtiqueta [OF NombreArchivoCDX] [ASCENDING | DESCENDING]] 83

[ADDITIVE] Argumentos ListaArchivosndice 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 combinacin 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 se convierte en el archivo ndice de control, que controla como se accedern y se mostrarn los registros. Los registros de la tabla se mostrarn o accedern en el orden fsico de los registros si el primer archivo de ndice es un archivo .CDX y no se ha emitido SET ORDER TO TAG. ? Muestra el cuadro de dilogo Abrir desde el cual puede abrir un solo archivo .IDX ORDER nNmerondice Especifica un archivo o etiqueta de ndice de control. La expresin numrica nNmerondice 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 existen) se numeran en el orden en que se crearon. Por ltimo, se numeran las etiquetas de cualquier archivo .CDX independiente en el orden en que se crearon. Vea SET ORDER para obtener una explicacin ms detallada de la numeracin de los archivos y las etiquetas de ndice. Si nNmerondice es 0, los registros de la tabla se muestran y se acceden en el orden fsico de los registros, pero los archivos de ndice permanecen abiertos. ORDER 0 le permite actualizar los archivos de ndice abiertos al tiempo que accede a los registros en su orden fsico. ORDER sin Argumentos adicionales es idntico a ORDER 0. Visual FoxPro generar un mensaje de error si nNmerondice es mayor que el nmero de archivos .IDX y de etiquetas de archivo .CDX. ORDER NombreArchivondiceIDX Especifica un archivo .IDX como archivo de ndice de control. ORDER [TAG] NombreEtiqueta [OF CDXNombreArchivo] Especifica una etiqueta NombreEtiqueta) 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 NombreArchivoCDX para especificar el archivo .CDX en el que est la etiqueta. ASCENDING | DESCENDING Especifica si los registros de la tabla se mostrarn y accedern en orden ascendente o descendente. Los archivos o etiquetas de ndice no se modificarn en modo alguno; nicamente cambiar el orden en el que se muestran y se accede a los registros. Incluya la palabra clave ASCENDING o DESCENDING inmediatamente despus de la clusula ORDER. ADDITIVE Especifica que los archivos de ndice abiertos con anterioridad, exceptuando un ndice compuesto estructural, se dejen abiertos al emitir SET INDEX para abrir uno o varios archivos de ndice adicionales para una tabla. Sin ADDITIVE, los archivos abiertos con anterioridad se cerraran. Comentarios Los registros de una tabla que tiene uno o varios archivos de ndice abiertos se pueden mostrar y acceder 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 automticamente al abrir la tabla. Solamente un archivo .IDX (el archivo de ndice de control) o una etiqueta de un archivo .CDX (la etiqueta de control) controla el orden en que se muestran o acceden los registros de la tabla. Ciertos comandos (SEEK, por ejemplo) utilizan el archivo o la etiqueta de control de ndice para buscar los registros. 84

Si emite SET INDEX sin ningn argumento adicional, se cerrarn todos los archivos de ndice abiertos (excepto el archivo .CDX estructural) del rea de trabajo actual.

SET LOCK (Comando)


Activa o desactiva el bloqueo automtico de archivos con ciertos comandos. Sintaxis SET LOCK ON | OFF Argumentos ON Especifica que los comandos antes indicados bloquean automticamente la tabla cuando se ejecutan. De esta forma se proporciona acceso de slo lectura a otros usuarios de la red y se garantiza el uso de los datos ms actuales. OFF (Predeterminado) Permite el acceso compartido a tablas con los comandos indicados anteriormente. Use SET LOCK OFF si no necesita la informacin ms actualizada de una tabla. Comentarios Visual FoxPro no bloquear un archivo cuando ejecute comandos que necesiten acceso de slo lectura a la tabla. Entre estos comandos se incluyen los siguientes: Comandos AVERAGE CALCULATE COPY TO COPY TO ARRAY COUNT DISPLAY (con alcance) INDEX

JOIN (ambos archivos) LIST LABEL REPORT SORT SUM TOTAL

Mientras se estn ejecutando, estos comandos no cambian el contenido de una tabla y el acceso a la tabla est disponible para otros usuarios de la red. La tabla no puede cambiarse mientras est ejecutando 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 informacin desactualizada. SET LOCK tiene como alcance la sesin actual de datos.

SET MULTILOCKS (Comando)


Determina si puede bloquear mltiples registros con LOCK( ) o RLOCK( ). Sintaxis SET MULTILOCKS ON | OFF Argumentos ON Le permite intentar bloquear un conjunto de registros. Para intentar bloquear varios registros, incluya una serie de nmeros de registro en LOCK( ) o RLOCK( ).. OFF (Predeterminado) Le permite intentar bloquear un solo registro con LOCK( ) o RLOCK( ). Comentarios Cuando se abre una tabla para uso compartido en una red, puede intentar bloquear ms de un registro de un archivo de tabla. El valor de SET MULTILOCKS determina si puede intentar bloquear un solo registro o un conjunto de registros. Los registros pueden bloquearse con la funcin LOCK( ) o RLOCK( ). 85

Al conmutar SET MULTILOCKS de ON a OFF o de OFF a ON, se ejecuta implcitamente UNLOCK ALL, es decir, se liberan todos los registros bloqueados de todas las reas de trabajo. SET MULTILOCKS alcanza la sesin de datos actual. Es necesario que MULTILOCKS est en ON antes de activar el almacenamiento de filas o de tablas en bfer mediante CURSORSETPROP( ). Para obtener ms informacin sobre el almacenamiento de filas y tablas en bfer, vea CURSORSETPROP( ). Si activa la casilla de verificacin Activar almacenamiento de datos en bfer en el cuadro de dilogo Propiedades del rea de trabajo (que aparece al elegir el botn Propiedades en la ventana Sesin de datos), MULTILOCKS se establecer automticamente en ON para la sesin de datos actual. Sin embargo, el hecho de desactivar la casilla de verificacin Activar almacenamiento de datos en bfer no establece MULTILOCKS en OFF para la sesin de datos actual.

SET ORDER (Comando)


Designa un archivo o una etiqueta de ndice de control para una tabla. Sintaxis SET ORDER TO [nNmerondice | NombreArchivondiceIDX | [TAG] NombreEtiqueta [OF NombreArchivoCDX] [IN nreaTrabajo | cAliasTabla] [ASCENDING | DESCENDING]] Argumentos nNmerondice Especifica el nmero del archivo o la etiqueta de ndice de control. nNmerondice se refiere a los archivos de ndice segn se haya especificado en USE o en SET INDEX. Los archivos .IDX abiertos se numeran primero segn el orden en que aparecen en USE o en SET INDEX. Despus, las etiquetas del archivo .CDX estructural (si existe alguno) se numeran segn el orden en que se crearon. Finalmente, las etiquetas de cualquier archivo .CDX independiente abierto se numeran segn el orden en que se crearon. El ejemplo siguiente ilustra cmo se numeran los distintos tipos de archivos de ndice y etiquetas. (Los nombres de archivo son meramente ilustrativos y no existen necesariamente). Primero se abre una tabla llamada video.dbf con tres ndices (title.idx, costs.cdx y rating.idx) en el primer rea de trabajo mediante 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 automticamente al abrirse video. Puesto que primero se numeran los archivos .IDX, emita 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 ndice de control: C:\FOX30\TITLE.IDX SET ORDER TO 2 ndice de control: C:\FOX30\RATING.IDX Despus se numeran las etiquetas de video.cdx: SET ORDER TO 3 ndice de control: C:\FOX30\VIDEO.CDX Etiqueta: NUMBERSOLD SET ORDER TO 4 ndice de control: C:\FOX30\VIDEO.CDX Etiqueta: YEARSOLD Finalmente se numeran las etiquetas del archivo independiente, costs.cdx:

86

SET ORDER TO 5 ndice de control: C:\FOX30\COSTS.CDX Etiqueta: RENTALCOST SET ORDER TO 6 ndice de control: C:\FOX30\COSTS.CDX Etiqueta: BUYCOST nNmerondice puede ser 0. Si emite 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 se la tabla se muestran y acceden segn el orden del nmero de registro, no segn el orden indexado. Emitir SET ORDER TO sin argumentos adicionales es idntico a emitir SET ORDER TO 0. Si nNmerondice es mayor que el nmero de archivos .IDX y archivos de etiquetas .CDX, Visual FoxPro generar un mensaje de error. NombreArchivondiceIDX Especifica un archivo .IDX como el archivo de ndice de control. [TAG] NombreEtiqueta [OF NombreArchivoIDX] Especifica una etiqueta de un archivo .CDX como la etiqueta de control. El nombre de etiqueta puede proceder de un archivo .CDX estructural o de cualquier archivo .CDX independiente abierto. Si en los archivos .CDX independientes abiertos existen nombres de etiquetas idnticos, use OF NombreArchivoCDX para especificar el archivo .CDX que contiene la etiqueta. Nota: El archivo .IDX tiene prioridad si existen nombres duplicados de archivo .IDX y de etiqueta. IN nreaTrabajo | cAliasTabla 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. nreaTrabajo especifica el nmero del rea de trabajo y cAliasTabla especifica el alias para la tabla. ASCENDING | DESCENDING Muestra y permite acceder 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. Comentarios Puede dejar abiertos muchos archivos de ndice simultneamente. 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) determina el orden en que se muestran o acceden los registros de una tabla. SET ORDER le permite designar el archivo de ndice de control o etiqueta de control. Ciertos comandos, como SEEK, usan el archivo de ndice de control o la etiqueta para buscar los registros. Puede abrir archivos de ndice con una tabla incluyendo la clusula INDEX en USE. Si una tabla tiene un archivo .CDX compuesto estructural asociado, ste se abrir automticamente con la tabla. Despus 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 PATH (Comando)


Especifica una ruta para buscar archivos. Sintaxis SET PATH TO [Ruta] Argumentos TO [Ruta] Especifica los directorios en los que desea que busque Visual FoxPro. Use comas o signos de punto y coma para separar los directorios. Nota: Visual FoxPro no reconocer correctamente un nombre de una ruta de acceso si el nombre de un disco o de un directorio contiene un signo de exclamacin (!). 87

En todas las plataformas FoxPro, las funciones que devuelven informacin sobre rutas de acceso, como es el caso de CURDIR( ), DBF( ), y SYS(2003), utilizan convenciones de denominacin de rutas de acceso de MS-DOS en los valores que devuelven. Comentarios Ejecute SET PATH TO sin Ruta para restaurar la ruta del directorio predeterminado. Use SET DEFAULT para especificar el directorio predeterminado, y CURDIR( ) para devolver el directorio predeterminado actual. SET PATH no alcanza a la sesin de datos actual; los cambios realizados en la ruta predeterminada mediante el comando SET PATH afectan a todas las sesiones de datos.

SET PROCEDURE (Comando)


Abre un archivo de procedimiento. Sintaxis SET PROCEDURE TO [NombreArchivo1 [, NombreArchivo2, ...]] [ADDITIVE] Argumentos NombreArchivo1 [, NombreArchivo2, ...] Especifica la secuencia en la que se abren los archivos. SET PROCEDURE puede aceptar ms de un nombre de archivo, lo que le permite abrir simultneamente varios archivos de procedimiento. Esto permite crear bibliotecas autnomas de funciones y especificarlas por separado. ADDITIVE Abre archivos de procedimiento adicionales sin cerrar los que ya estn abiertos. Comentarios Al ejecutar SET PROCEDURE TO sin ningn 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. Para obtener ms informacin sobre los archivos de procedimientos, vea PROCEDURE y DO.

SET RELATION (Comando)


Establece una relacin entre dos tablas abiertas. Sintaxis SET RELATION TO [eExpresin1 INTO nreaTrabajo1 | cAliasTabla1 [, eExpresin2 INTO nreaTrabajo2 | cAliasTabla2 ...] [IN nreaTrabajo | cAliasTabla] [ADDITIVE]] Argumentos eExpresin1 Especifica la expresin relacional que establece una relacin entre las tablas primaria y secundaria. La expresin relacional suele ser la expresin 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 mltiples entradas o bien un ndice compuesto independiente. Si se trata de un

88

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 seccin comentarios siguiente. Suponga que la tabla secundaria orders se ha indexado y ordenado segn el nmero del cliente con este comando: SET ORDER TO TAG cust_id Para relacionar las tablas customer y orders segn el nmero del cliente, seleccione el rea de trabajo que contiene la tabla primaria customer, o bien incluya la clusula IN para especificar el rea de trabajo o el alias de la tabla primaria, y luego ejecuta SET RELATION, especificando la expresin de ndice con la siguiente expresin relacional: SET RELATION TO cust_id INTO orders Es necesario que la tabla secundaria est indexada, a menos que la expresin relacional sea numrica. Visual FoxPro muestra un mensaje de error si ejecuta SET RELATION con una expresin relacional no numrica y la tabla secundaria no est ordenada con un ndice. Si eExpresin1 es numrica, se evala 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 nmero de registro eExpresin1. INTO nreaTrabajo1 | cAliasTabla1 Especifica el nmero del rea de trabajo( nreaTrabajo1) o el alias de tabla (cAliasTabla1) de la tabla secundaria. eExpresin2 INTO nreaTrabajo2 | cAliasTabla2 ... Especifica una expresin relacional ( eExpresin2) y una o varias tablas secundarias para establecer una relacin adicional entre la tabla primaria y las tablas secundarias. Mediante un nico comando SET RELATION, puede crear mltiples relaciones entre una sola tabla primaria y varias tablas secundarias. Incluya una coma delante de cada relacin. nreaTrabajo2 especifica un nmero de rea de trabajo y cAliasTabla2 especifica un alias de tabla para la tabla secundaria. IN nreaTrabajo Especifica el rea de trabajo de la tabla primaria. IN cAliasTabla Especifica el alias de la tabla primaria. La clusula IN le permite crear una relacin sin seleccionar primero el rea de trabajo de la tabla primaria. Si omite nreaTrabajo y cAliasTabla, 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 relacin especificada. Si omite ADDITIVE, se rompern todas las relaciones del rea de trabajo actual y se crear la relacin especificada. Comentarios Antes de que pueda establecer una relacin, 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 comn. Por ejemplo, suponga que una tabla customer contiene informacin de clientes. Tiene campos para el nombre, la direccin y un nmero de cliente que es nico. Una segunda tabla orders contiene informacin sobre pedidos. Tambin tiene un campo con el nmero de cliente, junto con los campos de fecha e informacin de envo. SET RELATION relaciona estas dos tablas basndose en su campo comn: el campo de nmero del cliente. Para establecer la relacin, la tabla secundaria debe estar indexada por el campo comn. Despus de establecer la relacin, cada vez que mueva el puntero de registro a un registro con un nmero de registro determinado de la tabla primaria customer, el puntero de registro de la tabla secundaria or89

ders se mueve al registro que tiene el mismo nmero de cliente. Si no se encuentra un registro coincidente en la tabla secundaria, el puntero de registro de la tabla secundaria se situar al final de la tabla. Emita SET RELATION TO sin ningn argumento para eliminar todas las relaciones del rea de trabajo seleccionada actualmente. SET RELATION OFF se puede utilizar para eliminar una relacin especfica primaria-secundaria.

SET SAFETY (Comando)


Determina si Visual FoxPro muestra o no un cuadro de dilogo antes de sobrescribir un archivo existente. Tambin determina si se evaluarn las reglas de tablas o de campos, los valores predeterminados y los mensajes de error al realizar cambios en el Diseador de tablas o con ALTER TABLE. Sintaxis SET SAFETY ON | OFF Argumentos ON (Predeterminado) Especifica que se muestre un cuadro de dilogo antes de sobrescribir un archivo existente. El cuadro de dilogo le ofrece la opcin de sobrescribir el archivo existente o no hacerlo. Para el Diseador de tablas, especifica que se evualuarn se evaluarn 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. Despus de salvar las modificaciones de la estructura de la tabla, se validarn los datos de reglas nuevas o modificadas. Si una regla de validacin contiene una UDF (funcin definida por el usuario, user-defined function), no se evaluar la UDF y se ignorar la regla de validacin. Para ALTER TABLE, se evaluarn se evaluarn 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 producir la validacin de los datos de reglas nuevas o modificadas. Si una regla de validacin contiene una UDF (funcin definida por el usuario, user-defined function), no se evaluar la UDF y se ignorar la regla de validacin. OFF Especifica que no se muestre ningn cuadro de dilogo antes de sobrescribir un archivo existente. Para el Diseador de tablas, especifica que no se evaluarn 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 validacin de datos de reglas de validacin nuevas o modificadas. Para ALTER TABLE, no se evaluarn las reglas de tablas o de campos, los valores predeterminados y los mensajes de error cuando ALTER TABLE modifique la estructura de la tabla. Despus de que ALTER TABLE haya cambiado la estructura de la tabla, no se validarn los datos para reglas de validacin nuevas o modificadas. Comentarios SET SAFETY tiene como alcance la sesin de datos actual.

SET SYSMENU (Comando)


Activa o desactiva la barra de mens del sistema de Visual FoxPro durante la ejecucin del programa, y le permite reconfigurarla. Sintaxis SET SYSMENU ON | OFF | AUTOMATIC | TO [ListaMens] | TO [ListaTtulosMen] | TO [DEFAULT] | SAVE | NOSAVE 90

Argumentos ON Activa la barra de mens principal de Visual FoxPro durante la ejecucin del programa cuando Visual FoxPro espera la introduccin de datos a travs del teclado durante comandos tales como BROWSE, READ y MODIFY COMMAND. OFF Desactiva la barra de mens principal de Visual FoxPro durante la ejecucin del programa. AUTOMATIC Hace que la barra de mens principal de Visual FoxPro est visible durante la ejecucin del programa. La barra de mens queda accesible y los elementos de men se activan y se desactivan segn convenga desde el comando actual. AUTOMATIC es el valor predeterminado. TO [ListaTtulosMens] Especifica un subconjunto de mens o de ttulos de mens para la barra de mens principal de Visual FoxPro. La lista de mens o de ttulos de men puede contener cualquier combinacin de mens o ttulos separados por comas. Los nombres internos de los mens y de los ttulos de mens se enumeran en Nombres de mens del sistema. Por ejemplo, el comando siguiente elimina todos los mens de la barra principal de mens de Visual FoxPro excepto los mens Archivo y Ventana: SET SYSMENU TO _MFILE, _MWINDOW Utilice RELEASE BAR para especificar los elementos disponibles en los mens. TO [DEFAULT] Restaura la barra de mens principal a su configuracin predeterminada. Si ha modificado la barra de mens principal o sus mens, ejecute SET SYSTEM TO DEFAULT para restaurarla. Puede especificar una configuracin predeterminada con SET SYSMENU SAVE. SAVE Hace que el sistema de mens actual sea la configuracin predeterminada. Si modifica el sistema de mens despus de emitir SET SYSMENU SAVE, puede restaurar la configuracin previa emitiendo SET SYSMENU TO DEFAULT. NOSAVE Restablece el sistema de mens al men del sistema predeterminado de Visual FoxPro. Sin embargo, el men del sistema predeterminado de Visual FoxPro no se muestra hasta que no emita SET SYSMENU TO DEFAULT. Comentarios SET SYSMENU controla la barra principal de mens de Visual FoxPro durante la ejecucin de un programa y le permite quitar y restaurar de forma selectiva ttulos de men y mens del sistema de mens principal de Visual FoxPro. Al ejecutar SET SYSMENU TO sin ningn argumento adicional se desactiva la barra de mens principal de Visual FoxPro.

SET TALK (Comando)


Determina si Visual FoxPro muestra o no los resultados de los comandos. Sintaxis SET TALK ON | OFF | WINDOW [NombreVentana] | NOWINDOW Argumentos ON (Predeterminado) Permite enviar la conversacin a la ventana principal de Visual FoxPro, a la ventana de mensajes del sistema, a la barra grfica de estado o a una ventana definida por el usuario. Si SET TALK est a OFF y se cambia a ON, la conversacin se dirigir a la misma ubicacin a la que se enviaba antes de emitir SET TALK OFF. 91

OFF Impide que la conversacin se enve a la ventana principal de Visual FoxPro, a la ventana de mensajes del sistema, a la barra grfica de estado o a una ventana definida por el usuario WINDOW [NombreVentana] NombreVentana especifica una ventana definida por el usuario a la que se dirige la conversacin. Es necesario crear la ventana definida por el usuario antes de dirigir la conversacin hacia ella. La conversacin se dirige a la ventana del sistema de Visual FoxPro en caso de que la ventana especificada no exista. NOWINDOW Dirige la conversacin a la ventana principal de Visual FoxPro.

SKIP (Comando)
Mueve el puntero de registro hacia delante o hacia atrs en una tabla. Sintaxis SKIP [nRegistros] [IN nreaTrabajo | cAliasTabla] Argumentos nRegistros Especifica el nmero de registros que hay que mover el puntero. Si emite SKIP sin nRegistros el puntero avanzar al siguiente registro. El puntero de registro se mueve hacia el final del archivo nRegistros si nRegistros tiene un valor positivo. El puntero de registro se mover hacia el principio del archivo nRegistros si nRegistros tiene un valor negativo. Si el puntero de registro est situado en el ltimo registro de una tabla y se ejecuta SKIP sin argumentos, RECNO( ) devolver un valor superior en uno al nmero de registros de la tabla y EOF( ) devolver verdadero (.T.). Si el puntero de registro est posicionado en el primer registro de una tabla y se ejecuta SKIP -1, RECNO( ) devolver 1 y EOF( ) devolver (.T.). IN nreaTrabajo | cAliasTabla Mueve el puntero de registro en una tabla de un rea de trabajo especfica. nreaTrabajo especifica el nmero del rea de trabajo y cAliasTabla especifica el alias de una tabla o de un rea de trabajo. Comentarios Si la tabla tiene una etiqueta de ndice de control principal o un archivo de ndice, SKIP mueve el puntero de registro al registro determinado por la secuencia de ndice.

SORT (Comando)
Ordena los registros de la tabla seleccionada actualmente y enva los registros ordenados a una tabla nueva. Sintaxis SORT TO NombreTabla ON NombreCampo1 [/A | /D] [/C] [, NombreCampo2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [FIELDS ListaNombresCampo | FIELDS LIKE Estructura | FIELDS EXCEPT Estructura] [NOOPTIMIZE] Argumentos

92

NombreTabla Especifica el nombre de la nueva tabla que contiene los registros ordenados. Visual FoxPro supone una extensin de archivo .DBF para las tablas. La extensin .DBF se asigna automticamente si el nombre de archivo incluido no tiene ninguna extensin. ON NombreCampo1 Especifica el campo de la tabla seleccionada actualmente en el que se basa el orden. El contenido y el tipo de dato del campo determinar el orden de los registros de la tabla. De forma predeterminada, la ordenacin se har en sentido ascendente. No podr ordenar por campos de tipo Memo o General. El ejemplo siguiente ordena una tabla por el campo cust_id. Se abre customer y se ordena en una tabla nueva llamada temp. Los registros de temp se ordenan por el campo cust_id. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE customer && Abre la tabla Customer CLEAR LIST FIELDS company, cust_id NEXT 3 SORT TO temp ON cust_id USE temp LIST FIELDS company, cust_id NEXT 3 WAIT WINDOW 'Ahora ordenado por CUST_ID' NOWAIT Puede incluir nombres de campo adicionales(NombreCampo2, NombreCampo3) para ordenar aun ms la tabla. El primer campo NombreCampo1 es el campo de ordenacin primario, el segundo campo NombreCampo2 es el campo de ordenacin secundario, etc. [/A | /D] [/C] Para cada uno de los campos que incluya en la ordenacin puede especificar un sentido ascendente o descendente. La opcin /A especifica orden ascendente. La opcin /D especifica orden descendente. /A o /D pueden incluirse con cualquier tipo de campo. De forma predeterminada, el sentido de ordenacin de los campos alfanumricos distingue entre maysculas y minsculas. Si incluye la opcin /C despus del nombre de un campo alfanumrico, se ignorar la diferencia. Puede combinar la opcin /C con la opcin /(A o /D. Por ejemplo, /AC o /DC. En el ejemplo siguiente se crea una tabla nueva denominada clients. La tabla orders se ordena segn el campo order_date en orden ascendente, y segn el campo freight en orden descendente USE orders SORT TO clients ON order_date/A,freight/D ASCENDING Especifica un sentido de ordenacin para todos los campos que no vayan seguidos de la opcin /D. DESCENDING Especifica un sentido de orden descendente para todos los campos que no vayan seguidos de la opcin /A. Si no incluye ASCENDING o DESCENDING, asumir el sentido de ordenacin predeterminado, que es ascendente. Alcance Especifica un rango de registros a ordenar. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. El alcance predeterminado de SORT es ALL (todos los registros). FOR lExpresin1 Especifica que solamente se incluyen en la ordenacin los registros de la tabla actual para los cuales la condicin lgica lExpresin1 se evala como verdadera (.T.). La inclusin de FOR le permite ordenar registros condicionalmente, filtrando los registros no deseados. Si lExpresin1 es una opcin optimizable, Rushmore optimizar un comando SORT ... FOR. Para obtener un mejor rendimiento, utilice una opcin optimizable en la clusula FOR.

93

WHILE lExpresin2 Especifica una condicin segn la cual los registros de la tabla actual se incluirn en la ordenacin hasta que la expresin lgica lExpresin2 los califique de verdaderos (.T.). FIELDS ListaNombresCampo Especifica los campos procedentes de la tabla original que se van a incluir en la nueva tabla creada por SORT. Si no se incluye la clusula FIELDS, se incluirn todos los campos de la tabla en la nueva tabla. FIELDS LIKE Estructura Especifica que los campos de la tabla original que coincidan con la estructura de campo Estructura se incluyan en la nueva tabla creada por SORT. FIELDS EXCEPT Estructura Especifica que todos los campos excepto los que coincidan con la estructura de campo Estructura se incluyan en la nueva tabla creada por SORT. La estructura de campo Estructura admite caracteres comodn. Por ejemplo, para especificar que se incluyen en la nueva tabla todos los campos que comienzan por las letras A y P, use: SORT TO mitabla ON micampo FIELDS LIKE A*,P* La clusula LIKE se puede combinar con la clusula EXCEPT: SORT TO mitabla ON micampo FIELDS LIKE A*,P* EXCEPT PARTNO* NOOPTIMIZE Desactiva la optimizacin Rushmore de SORT. Comentarios El orden en que aparecern los registros de la nueva tabla viene determinado por uno o ms campos de la tabla actual.

STORE (Comando)
Almacena datos en una variable de memoria, en una matriz o en un elemento de matriz. Sintaxis STORE eExpresin TO ListaNombresVariable | ListaNombreMatriz O bien NombreVariable | NombreMatriz = eExpresin Argumentos eExpresin Especifica una expresin cuyo valor se almacena en la variable de memoria, la matriz o el elemento de matriz. Si no existe la variable de memoria, se crea y se inicializa eExpresin. Una matriz debe estar definida previamente con DIMENSION. STORE sustituye el valor de una variable o matriz de memoria existente con el valor nuevo. ListaNombreVariable Especifica una lista de variables de memoria o elementos de matriz en los que se almacena eExpresin. Separe los nombres o elementos de matriz mediante comas. ListaNombreMatriz Especifica una lista de nombres de matrices existentes en las que se almacena eExpresin. Separe con comas el nombre de las matrices. STORE inicializa dada elemento de las matrices con el valor especificado si SET COMPATIBLE est OFF. STORE almacena el valor especificado en variables de memoria con los nombres especificados si SET COMPATIBLE est ON, sobrescribiendo las matrices existentes que tengan esos nombres. Comentarios Una alternativa a STORE es el signo igual (=). La variable de memoria, matriz o matriz de elementos debe estar al lado izquierdo del signo igual y el valor al lado derecho. Las fechas pueden almacenarse directamente en variables o matrices de memoria utilizando llaves. 94

STORE {12/25/95} TO gdXMas

STR( ) (Funcin)
Devuelve el carcter equivalente a una expresin numrica especificada. Sintaxis STR(nExpresin [, nLongitud [, nLugaresDecimales]]) Tipos devueltos Character Argumentos nExpresin Especifica la expresin numrica evaluada por STR( ). nLongitud Especifica la longitud de la cadena de caracteres devuelta por STR( ). La longitud incluye un carcter para la coma decimal y un carcter para cada dgito a la derecha de la coma decimal. STR( ) rellena la cadena de caracteres con espacios al principio si especifica una longitud mayor que el nmero de dgitos a la izquierda de la coma decimal. STR( ) devuelve una cadena de caracteres, indicando desbordamiento numrico, si especifica una longitud inferior que el nmero de dgitos a la izquierda de la coma decimal. nLugaresDecimales Especifica el nmero de lugares decimales de la cadena de caracteres devuelta por STR( ). Puede incluir nLongitud para especificar el nmero de lugares decimales. Si especifica menos lugares decimales de los que estn en nExpresin, se truncarn los dgitos extra.

SUBSTR( ) (Funcin)
Devuelve un nmero de caracteres especfico de una expresin de caracteres o un campo memo. Sintaxis SUBSTR(cExpresin, nPosicinInicial [, nCaracteresDevueltos]) Tipos devueltos Character Argumentos cExpresin Especifica la expresin de caracteres o el campo memo desde el cual se devuelve la cadena de caracteres. PosicinInicial Especifica la posicin en la expresin de caracteres o en la cExpresin del campo memo desde la que se devuelve la cadena de caracteres. El primer carcter de cExpresin es la posicin 1. Si TALK toma el valor SET ON y nPosicinInicial es mayor que el nmero de caracteres de cExpresin, Visual FoxPro generar un mensaje de error. Si TALK toma el valor SET OFF, se devuelve la cadena vaca. nCaracteresDevueltos Especifica el nmero de caracteres a extraer de cExpresin. Si se omite nCaracteresDevueltos, los caracteres se extraern hasta llegar al final de la expresin de caracteres. Comentarios

95

SUBSTR( ) devuelve una cadena de caracteres de una expresin de tipo carcter o de un campo memo, comenzando en la posicin especificada de la expresin de caracteres y continuando durante el nmero especificado de caracteres. SUBSTR( ) no devolver ningn valor para un campo memo cuando se emita en la ventana Depuracin. Para devolver un valor en la ventana Depuracin, incluya el nombre del campo memo dentro de ALLTRIM( ) e incluya ALLTRIM( ) dentro de SUBSTR( ).

SUM (Comando)
Totaliza los valores de todos los campos numricos especificados de la tabla actual seleccionada. Sintaxis SUM [eListaExpresin] [Alcance] [FOR lExpresin1] [WHILE lExpresin2] [TO ListaNombresVariablesMemoria | TO ARRAY NombreMatriz] [NOOPTIMIZE] Argumentos eListaExpresin Especifica uno o varios campos o expresiones de campo que se van a totalizar. Si se omite la lista de expresiones, se totalizarn todos los campos numricos. Alcance Especifica un intervalo de registros que se van a utilizar en el total. Las clusulas de alcance son: ALL, NEXT nRegistros, RECORD nNmeroRegistro y REST. El alcance predeterminado de SUM es ALL (todos los registros). FOR lExpresin1 Especifica que solamente se incluyan en el total los registros para los cuales la condicin lgica lExpresin1 se evala como verdadera (.T.). La inclusin de FOR le permite totalizar registros condicionalmente, desechando los registros no deseados. Si lExpresin1 es una expresin optimizable, Rushmore optimizar un comando SUM ... FOR. Para obtener un mejor rendimiento, utilice una expresin optimizable en la clusula FOR. Para conseguir el rendimiento ptimo, utilice una expresin optimizable en la clusula FOR. WHILE lExpresin2 Especifica una condicin por la cual los registros de la tabla activa se incluyen en el total siempre que la expresin lgica lExpresin2 se evale como verdadera (.T.). TO ListaNombresVariablesMemoria Almacena cada total en una variable de memoria. Si especifica en ListaNombresVariablesMemoria el nombre de una variable de memoria que no existe, Visual FoxPro la crear automticamente. Separe los nombres de variables de memoria de la lista con comas. TO ARRAY NombreMatriz Almacena los totales en una matriz de variables de memoria. Si la matriz que especifica en SUM no existe, Visual FoxPro la crear automticamente. Si la matriz existe y es demasiado pequea para albergar todos los datos, se aumentar automticamente el tamao de la matriz para acoger los totales. NOOPTIMIZE Desactiva la optimizacin Rushmore de SUM.

SYS( ) Introduccin a las funciones


Devuelve informacin del sistema de Visual FoxPro. Sintaxis SYS( ) Tipos devueltos Character 96

Comentarios Las diversas funciones SYS( ) de Visual FoxPro devuelven valores de tipo carcter que contienen informacin til sobre el sistema. La tabla siguiente muestra lo que devuelve cada funcin SYS( ). Funcin SYS(0) SYS(1) SYS(2) SYS(3) SYS(5) SYS(6) SYS(7) SYS(9) SYS(10) SYS(11) SYS(12) SYS(13) SYS(14) SYS(15) SYS(16) SYS(17) SYS(18) SYS(20) SYS(21) SYS(22) SYS(23) SYS(24) SYS(100) SYS(101) SYS(102) SYS(103) SYS(1001) SYS(1016) SYS(1023) SYS(1024) SYS(1037) SYS(1269) SYS(1270) SYS(1271) SYS(1272) SYS(1500) SYS(2000) SYS(2001) SYS(2002) SYS(2003) SYS(2004) SYS(2005) SYS(2006) SYS(2007) SYS(2010) SYS(2011) SYS(2012) SYS(2013) SYS(2014) SYS(2015) SYS(2016) SYS(2017) SYS(2018) SYS(2019) SYS(2020) Informacin que devuelve Nmero de mquina de red Fecha juliana Segundos desde medianoche Nombre legal de archivo Unidad predeterminada Dispositivo de impresora actual Archivo de formato actual Nmero de serie Visual FoxPro Cadena de nmero de da juliano Nmero de da Juliano Memoria disponible en bytes Estado de la impresora Expresin de ndice Traduccin de caracteres Programa en ejecucin Procesador en uso Control actual Transf. Texto Alemn Nmero de ndice de control Nombre de ndice o etiqueta de control Uso de memoria EMS de Visual FoxPro Lmite de memoria EMS Ajuste de CONSOLE Ajuste de DEVICE Ajuste de PRINTER Ajuste de TALK Memoria de Visual FoxPro Uso de la memoria de objetos de usuario Activa el modo de diagnstico de Ayuda Desactiva el modo de diagnstico de Ayuda Cuadro de dilogo Preparar pgina Informacin de propiedad Ubicacin de objetos Archivo .SCX del objeto Jerarqua de objetos Activar un elemento de men Coincidencia comodn archivos Estado de comandos SET Activar/desactivar cursor Directorio actual Directorio de inicio de Visual FoxPro Archivo actual de recursos Tarjeta grfica actual Valor de la suma de verificacin Configuracin del archivo CONFIG.SYS Estado actual de bloqueo Tamao de bloque de campos memo Cadena de nombre de men del sistema Ruta mnima Nombre nico de procedimiento Nombre SHOW GETS WINDOW Mostrar pantalla de registro Parmetro de mensaje de error Nombre y posicin del archivo de configuracin Tamao predeterminado del disco 97

SYS(2021) SYS(2022) SYS(2023) SYS(2029) SYS(2333) SYS(3004) SYS(3005) SYS(3006) SYS(3050) SYS(3051) SYS(3052) SYS(3053)

Expresin filtrada de ndice Tamao de clster de disco (bloque) Unidad de archivos temporales Tipo de tabla Compatibilidad con interfaz dual ActiveX Devuelve el ID de informacin local Establece el ID de informacin local Establece los ID de informacin local e idioma Establecer tamao de memoria de bfer Establecer intervalo de reintento de bloqueo Ignorar bloqueo SET REPROCESS Controlador de entorno ODBC

THISFORM (Referencia de objeto)


Proporciona una referencia al formulario actual en evento de formularios o en una definicin de clase. Sintaxis THISFORM.NombrePropiedad | NombreObjeto Argumentos NombrePropiedad Especifica una propiedad para el formulario. NombreObjeto Especifica un objeto del formulario. Comentarios THISFORM proporciona una forma muy conveniente de hacer referencia al formulario actual mientras se escribe programas que controlan eventos en un formulario. Por ejemplo, este programa Click Event para un botn de comando establece que el ttulo del botn sea la hora actual. thisform.command1.caption = time() La utilizacin de THISFORM en lugar de hacer referencia explcitamente al formulario actual mediante su nombre (por ejemplo, form1.command1.caption) hace que el cdigo de programa sea porttil entre formularios. Durante la creacin de definiciones de clase, THISFORM tambin proporciona medios de hacer referencia al formulario actual dentro de un mtodo. THISFORM le permite hacer referencia a un objeto en el formulario o en la propiedad sin tener que utilizar varias propiedades Parent.

VAL( ) (Funcin)
Devuelve un valor numrico a partir de una expresin de caracteres compuesta de nmeros. Sintaxis VAL(cExpresin) Tipos devueltos Numeric Argumentos cExpresin Especifica una expresin de caracteres compuesta de hasta 16 nmeros. Si en cExpresin se incluyen ms de 16 nmeros, se redondear. Comentarios

98

VAL( ) devuelve los nmeros de la expresin de caracteres de izquierda a derecha hasta que encuentra un carcter no numrico (se pasan por alto los espacios en blanco iniciales). VAL( ) devuelve 0 si el primer carcter de la expresin de caracteres no es un nmero, ni un signo ms (+) ni un signo menos (). VAL( ) se puede utilizar para convertir en valores numricos las cadenas de caracteres devueltas por las funciones SYS( ) de Visual FoxPro.

WAIT (Comando)
Muestra un mensaje y detiene la ejecucin de Visual FoxPro hasta que presione una tecla o haga clic con el mouse. Sintaxis WAIT [cTextoMensaje] [TO NombreVariable] [WINDOW [AT nFila, nColumna]] [NOWAIT] [CLEAR | NOCLEAR] [TIMEOUT nSegundos] Argumentos cTextoMensaje Especifica el mensaje personalizado que se desea mostrar. Si omite cTextoMensaje, Visual FoxPro mostrar el mensaje predeterminado. Si cTextoMensaje es la cadena vaca (""), no se mostrar ningn mensaje y Visual FoxPro esperar hasta que se presione una tecla antes de continuar con la ejecucin del programa. TO NombreVariable Guarda la tecla presionada en una variable o en un elemento de matriz. Si la variable o el elemento de matriz que especifica con NombreVariable no existe, se crear. Si presiona la tecla ENTRAR o una tecla o combinacin de teclas no imprimible, o hace clic con el mouse, en NombreVariable se almacenar la cadena vaca. WINDOW Muestra el mensaje en una ventana de mensajes del sistema, en la esquina superior derecha de la ventana principal de Visual FoxPro. La ventana puede ocultarse temporalmente presionando la tecla CTRL o MAYS. AT nFila, nColumna dentro de la pantalla. En Visual FoxPro, especifica la posicin que ocupar la ventana de mensajes

NOWAIT Contina la ejecucin del programa inmediatamente despus de mostrar el mensaje. El programa no espera a que el mensaje desaparezca de la ventana principal de Visual FoxPro, sino que contina ejecutando la lnea del programa inmediatamente siguiente a la que contiene WAIT NOWAIT. Si omite NOWAIT, la ejecucin del programa se interrumpe hasta que el mensaje se elimine de la ventana principal de Visual FoxPro presionando una tecla o haciendo clic con el mouse. CLEAR Elimina una ventana de sistema de Visual FoxPro o una ventana de mensajes WAIT de la ventana principal de Visual FoxPro desde un programa. Por ejemplo, la conversacin procedente de indexar, ordenar, etc. se dirige a una ventana de sistema de Visual FoxPro si emite SET TALK WINDOW. La ventana se eliminar cuando presione una tecla o mueva el mouse. Emita WAIT CLEAR para eliminar la ventana desde dentro de un programa. NOCLEAR Especifica que una ventana de mensajes WAIT permanecer en la ventana principal de Visual FoxPro hasta que se emita WAIT CLEAR u otro comando WAIT WINDOW, o hasta que se muestre un mensaje de sistema de Visual FoxPro. TIMEOUT nSegundos Especifica cuntos segundos pueden transcurrir sin entradas desde el teclado o el mouse antes de que WAIT termine. nSegundos especifica el nmero de segundos (se admiten partes fraccionales de segundo) que pueden transcurrir. Si TIMEOUT no es la ltima clusula de WAIT, Visual FoxPro genera un mensaje de error de sintaxis. 99

Comentarios Si se muestra un mensaje WAIT en Visual FoxPro para Windows, podr ocultar todas las ventanas que contengan el mensaje WAIT, presionando la tecla MAYSC o CTRL.

YEAR( ) (Funcin)
Devuelve el ao a partir de la expresin de fecha o fecha-hora especificada. Sintaxis YEAR(dExpresin | tExpresin) Tipos devueltos Numeric Argumentos dExpresin Especifica una expresin de fecha a partir de la cual YEAR( ) devuelve el ao. dExpresin puede ser una funcin que devuelve una fecha o una variable de memoria, un elemento de matriz o un campo de tipo Fecha. Tambin puede ser una cadena de fecha literal, como, por ejemplo: {06/06/95}. tExpresin Especifica una expresin de tipo fecha-hora a partir de la cual YEAR( ) devuelve el ao. Comentarios YEAR( ) siempre devuelve el ao con el siglo. El valor de CENTURY (ON u OFF) no afecta al valor devuelto.

ZAP (Comando)
Elimina todos los registros de la tabla actual, dejando slo la estructura de la tabla. Sintaxis ZAP [IN nreaTrabajo | cAliasTabla] Argumentos IN nreaTrabajo Especifica el rea de trabajo de la tabla cuyos registros se eliminan. IN cAliasTabla Especifica el alias de la tabla en la que se eliminan todos los registros. Si omite nreaTrabajo y cAliasTabla, se eliminan todos los registros de la tabla situada en el rea de trabajo seleccionada actualmente. Comentarios Emitir ZAP es equivalente a emitir DELETE ALL seguido de PACK, pero ZAP es mucho ms rpido. Si SET SAFETY est ON, Visual FoxPro le preguntar si desea eliminar los registros de la tabla actual. La emisin de ZAP no hace que se produzca el desencadenante Delete. Para obtener ms informacin sobre la creacin de desencadenantes para una tabla, vea CREATE TRIGGER. Precaucin: Los registros eliminados de la tabla actual no podrn recuperarse.

100