Apuntes VisualFox

Embed Size (px)

Citation preview

FUNCIONES, MTODOS Y COMANDOS DE VISUAL FOXPRO

Guia Prctica2.004

1

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

2

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.

4

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.

7

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-

8

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

9

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, s