Visual FoxPro
Visual FoxPro es un lenguaje de programación procedural, orientado a objetos que posee un Sistema Gestor de Bases de datos o Database Management System (DBMS) y Sistema administrador de bases de datos relacionales, producido por Microsoft
Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
• Capacidades para el manejar datos nativos y remotos.
• Flexibilidad para crear soluciones de bases de datos.
• Lenguaje de Programación Orientado a objetos.
• Utilización de Sentencias SQL en forma nativa.
• Manejo de vistas, cursores y control completo de estructuras relacionales.
• Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
• Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas.
• Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML.
La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.
Una empresa llamada etecnologia "www.etecnologia.net" ha desarrollado el.NET EXTENDER que permite utilizar el.net framework en Visual FoxPro, y han anunciado que a finales del 2009 van a sacar su "VFP Developer Studio" herramienta que convierte a VFP en un lenguaje.Net. A 31 de mayo del 2009, este producto ya soporta el 92% de los comandos y funciones de VFP y se puede comprar por $250.00.
En la actualidad, a pesar de que Microsoft ha decicido no continuar con Microsoft Visual FoxPro, existe una comunidad de desarrolladores que sigue trabajando en él, PortalFox y Mundo Visual FoxPro son las más importantes entre los desarrolladores de habla hispana
Historia
Entre sus características se pueden enumerar:
• Capacidades para el manejar datos nativos y remotos.
• Flexibilidad para crear soluciones de bases de datos.
• Lenguaje de Programación Orientado a objetos.
• Utilización de Sentencias SQL en forma nativa.
• Manejo de vistas, cursores y control completo de estructuras relacionales.
• Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
• Cuenta con un motor de generación de informes renovado y flexible para soluciones más robustas.
• Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML.
La última versión liberada es la 9.0. Esta cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto.
Una empresa llamada etecnologia "www.etecnologia.net" ha desarrollado el.NET EXTENDER que permite utilizar el.net framework en Visual FoxPro, y han anunciado que a finales del 2009 van a sacar su "VFP Developer Studio" herramienta que convierte a VFP en un lenguaje.Net. A 31 de mayo del 2009, este producto ya soporta el 92% de los comandos y funciones de VFP y se puede comprar por $250.00.
En la actualidad, a pesar de que Microsoft ha decicido no continuar con Microsoft Visual FoxPro, existe una comunidad de desarrolladores que sigue trabajando en él, PortalFox y Mundo Visual FoxPro son las más importantes entre los desarrolladores de habla hispana
Historia
Visual FoxPro proviene de FoxPro, que a su vez deriva de FoxBASE,
creado por Fox Software en 1984;
inicialmente un clon de dBase, acabó
superándolo y con Clipper,
convirtiéndose en una de las estrellas de los lenguajes xBase.
Cuando se presentó FoxPro 2.0 se
incluyeron varias tecnologías que revolucionaron el mercado de desarrollo de
bases de datos las cuales son:
• La adición de Tecnología Rushmore hizo posible que tablas tuvieran millones de registros sin la necesidad de pasar a tecnologías más caras
• Las instrucciones SQL que reemplazaban procedimientos completos. SQL fue, y todavía es, el lenguaje de los datos
• La presentación de medios tipo WYSIWYG (What you see is what you get) que significa: "lo que tu ves es lo que consigues" que abrió el camino a diseñadores de pantallas e informes.
Microsoft compró Fox Software en junio de 1992 por 173 millones de dólares. En el momento de la compra el desarrollo de FoxPro 2.5 estaba casi terminado, añadiéndole la capacidad de generar ejecutables para Windows. Las versiones de FoxPro 2.6 para Windows, Mac y Unix se consideran las últimas versiones de FoxProCREATE DATABASE (Comando)Crea una base de datos y la abre.
CREATE DATABASE [DatabaseName | ?]
Parámetros
DatabaseName
Especifica el nombre de la base de datos que se va a crear.
Si SAFETY está establecido en 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 diálogo de advertencia que le pide que especifique una ruta de acceso o un nombre nuevos para la base de datos.
?
Muestra el cuadro de diálogo Crear en el que puede especificar el nombre de la base de datos que desea crear.
Observaciones
Un archivo de base de datos tiene una extensión .dbc. Los archivos memo asociados a la base de datos tienen una extensión .dct y los archivos de índice asociado tienen una extensión .dcx.
La base de datos se abre de forma exclusiva, independientemente de la configuración 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 ejecute CREATE DATABASE sin alguno de sus argumentos opcionales, aparecerá el cuadro de diálogo Crear, que le permite especificar un nombre para la base de datos.
Ejemplo
El ejemplo siguiente crea una base de datos llamada people. Se crea una tabla llamada friends y se agrega automáticamente a la base de datos. Se usa DISPLAY TABLES para mostrar las tablas de la base de datos y DISPLAY DATABASES para mostrar información acerca de las tablas de la base de datos.
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES && Displays tables in the database
DISPLAY DATABASES && Displays table information
CLOSE (Comandos)
Cierra varios tipos de archivo.
CLOSE [ALL | ALTERNATE | DATABASES [ALL] | DEBUGGER | FORMAT | INDEXES
| PROCEDURE | TABLES [ALL]]
Parámetros
ALL
Cierra todas las bases de datos, tablas e índices abiertos en la sesión de datos actual y en todas las sesiones de datos inactivas y selecciona el área de trabajo 1. CLOSE ALL también cierra los archivos abiertos con las funciones de archivo de bajo nivel FCREATE( ) y FOPEN( ). CLOSE ALL no cierra un archivo abierto con SET PRINT.
CLOSE ALL también cierra lo siguiente:
• Diseñador de formularios
• Administrador de proyectos
• Diseñador de etiquetas
• Diseñador de informes
• Diseñador de consultas
CLOSE ALL no cierra lo siguiente:
• La ventana Comandos
• La ventana Depuración
• Ayuda
• La ventana Seguimiento
CLOSE ALTERNATE
Cierra un archivo alternativo abierto con SET ALTERNATE.
CLOSE DATABASES [ALL]
Cierra la base de datos actual de la sesión de datos actual, así como sus tablas. Si no hay ninguna base de datos activa, se cierran todas las tablas libres, los índices y los archivos de formato abiertos en todas las áreas de trabajo y se selecciona el área de trabajo 1.
ALL
Especifica que, en la sesión de datos actual y en todas las sesiones de datos inactivas, se cierre lo siguiente:
• Todas las bases de datos abiertas y sus tablas.
• Todas las tablas libres abiertas.
• Todos los índices y archivos de formato de todas las áreas de trabajo.
Se selecciona el área de trabajo 1.
CLOSE DEBUGGER
Cierra el depurador de Visual FoxPro.
CLOSE FORMAT
Cierra un archivo de formato del área de trabajo actual abierto con SET FORMAT.
CLOSE INDEXES
Cierra todos los archivos de índice (tanto .idx de entrada simple como .cdx compuestos independientes) abiertos en el área de trabajo actual. Un índice compuesto estructural (un archivo .cdx abierto automáticamente con la tabla) no se cierra.
CLOSE PROCEDURE
Cierra el archivo de procedimientos abierto con SET PROCEDURE.
CLOSE TABLES [ALL]
Cierra todas las tablas de la base de datos seleccionada actualmente. CLOSE TABLES cierra todas las tablas libres de todas las áreas de trabajo en caso de que no haya una base de datos abierta.
Incluya ALL para cerrar todas las tablas en todas las bases de datos y todas las tablas independientes. Todas las bases de datos permanecen abiertas.
CLOSE TABLES no debe ejecutarse cuando hay una transacción en progreso, porque Visual FoxPro generará un mensaje de error.
USE (Comando)
• Las instrucciones SQL que reemplazaban procedimientos completos. SQL fue, y todavía es, el lenguaje de los datos
• La presentación de medios tipo WYSIWYG (What you see is what you get) que significa: "lo que tu ves es lo que consigues" que abrió el camino a diseñadores de pantallas e informes.
Microsoft compró Fox Software en junio de 1992 por 173 millones de dólares. En el momento de la compra el desarrollo de FoxPro 2.5 estaba casi terminado, añadiéndole la capacidad de generar ejecutables para Windows. Las versiones de FoxPro 2.6 para Windows, Mac y Unix se consideran las últimas versiones de FoxProCREATE DATABASE (Comando)Crea una base de datos y la abre.
CREATE DATABASE [DatabaseName | ?]
Parámetros
DatabaseName
Especifica el nombre de la base de datos que se va a crear.
Si SAFETY está establecido en 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 diálogo de advertencia que le pide que especifique una ruta de acceso o un nombre nuevos para la base de datos.
?
Muestra el cuadro de diálogo Crear en el que puede especificar el nombre de la base de datos que desea crear.
Observaciones
Un archivo de base de datos tiene una extensión .dbc. Los archivos memo asociados a la base de datos tienen una extensión .dct y los archivos de índice asociado tienen una extensión .dcx.
La base de datos se abre de forma exclusiva, independientemente de la configuración 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 ejecute CREATE DATABASE sin alguno de sus argumentos opcionales, aparecerá el cuadro de diálogo Crear, que le permite especificar un nombre para la base de datos.
Ejemplo
El ejemplo siguiente crea una base de datos llamada people. Se crea una tabla llamada friends y se agrega automáticamente a la base de datos. Se usa DISPLAY TABLES para mostrar las tablas de la base de datos y DISPLAY DATABASES para mostrar información acerca de las tablas de la base de datos.
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES && Displays tables in the database
DISPLAY DATABASES && Displays table information
CLOSE (Comandos)
Cierra varios tipos de archivo.
CLOSE [ALL | ALTERNATE | DATABASES [ALL] | DEBUGGER | FORMAT | INDEXES
| PROCEDURE | TABLES [ALL]]
Parámetros
ALL
Cierra todas las bases de datos, tablas e índices abiertos en la sesión de datos actual y en todas las sesiones de datos inactivas y selecciona el área de trabajo 1. CLOSE ALL también cierra los archivos abiertos con las funciones de archivo de bajo nivel FCREATE( ) y FOPEN( ). CLOSE ALL no cierra un archivo abierto con SET PRINT.
CLOSE ALL también cierra lo siguiente:
• Diseñador de formularios
• Administrador de proyectos
• Diseñador de etiquetas
• Diseñador de informes
• Diseñador de consultas
CLOSE ALL no cierra lo siguiente:
• La ventana Comandos
• La ventana Depuración
• Ayuda
• La ventana Seguimiento
CLOSE ALTERNATE
Cierra un archivo alternativo abierto con SET ALTERNATE.
CLOSE DATABASES [ALL]
Cierra la base de datos actual de la sesión de datos actual, así como sus tablas. Si no hay ninguna base de datos activa, se cierran todas las tablas libres, los índices y los archivos de formato abiertos en todas las áreas de trabajo y se selecciona el área de trabajo 1.
ALL
Especifica que, en la sesión de datos actual y en todas las sesiones de datos inactivas, se cierre lo siguiente:
• Todas las bases de datos abiertas y sus tablas.
• Todas las tablas libres abiertas.
• Todos los índices y archivos de formato de todas las áreas de trabajo.
Se selecciona el área de trabajo 1.
CLOSE DEBUGGER
Cierra el depurador de Visual FoxPro.
CLOSE FORMAT
Cierra un archivo de formato del área de trabajo actual abierto con SET FORMAT.
CLOSE INDEXES
Cierra todos los archivos de índice (tanto .idx de entrada simple como .cdx compuestos independientes) abiertos en el área de trabajo actual. Un índice compuesto estructural (un archivo .cdx abierto automáticamente con la tabla) no se cierra.
CLOSE PROCEDURE
Cierra el archivo de procedimientos abierto con SET PROCEDURE.
CLOSE TABLES [ALL]
Cierra todas las tablas de la base de datos seleccionada actualmente. CLOSE TABLES cierra todas las tablas libres de todas las áreas de trabajo en caso de que no haya una base de datos abierta.
Incluya ALL para cerrar todas las tablas en todas las bases de datos y todas las tablas independientes. Todas las bases de datos permanecen abiertas.
CLOSE TABLES no debe ejecutarse cuando hay una transacción en progreso, porque Visual FoxPro generará un mensaje de error.
USE (Comando)
Abre una tabla y sus archivos de índice asociados, o una vista SQL.
USE [[DatabaseName!]Table | SQLViewName | ?]
[IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN]
[NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList | ?
[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName]
[ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE]
[SHARED] [NOUPDATE] [CONNSTRING cConnectString]
Parámetros
[DatabaseName!]TableName
Especifica el nombre de la tabla que se va a abrir. Puesto que los espacios en blanco son importantes en los nombres de archivo de Microsoft Windows 98 y posteriores, evite usar espacios adicionales en TableName. Si un nombre de tabla contiene espacios, escríbalo entre comillas (" " o ' ')
Para abrir una tabla fuera de la base de datos actual, califique la tabla con el nombre de la base de datos, con un signo de exclamación (!) para separar el nombre de la base de datos del nombre de la tabla. Si no califica una tabla con un nombre de base de datos, Microsoft Visual FoxPro sólo podrá abrir las tablas de la base de datos actual. Si el nombre de la base de datos, el nombre de la tabla o ambos contienen espacios, escriba el nombre de la base de datos y el nombre de la tabla entre comillas (" " o ' ')
Nota Visual FoxPro no reconocerá correctamente un nombre de ruta de acceso si el nombre del disco o del directorio contiene un signo de exclamación (!).
SQLViewName
Especifica el nombre de una vista SQL de la base de datos actual que desea abrir. Las vistas de SQL se crean con CREATE SQL VIEW. SQLViewNametambién puede ser el nombre de una vista sin conexión creada con CREATEOFFLINE( ).
?
Muestra el cuadro de diálogo Uso, que le permite elegir una tabla para abrirla.
IN nWorkArea
Especifica el área de trabajo en la que se abre la tabla. Puede cerrar una tabla de un área de trabajo determinada, ejecutando USE con la cláusula IN y el número del área de trabajo.
La cláusula IN admite 0 como área de trabajo. Al incluir 0, se abrirá una tabla en el área de trabajo que tenga el número más bajo. Por ejemplo, si hay tablas abiertas en las áreas de trabajo de 1 a 10, el siguiente comando abrirá la tabla customer en el área de trabajo 11:
USE customer IN 0
IN cTableAlias
Especifica que la tabla se abre en el área de trabajo de una tabla que está abierta actualmente. El alias de la tabla abierta se especifica concTableAlias.
Si omite nWorkArea y cTableAlias, la tabla se abrirá en el área de trabajo seleccionada actualmente.
ONLINE
Abre una vista sin conexión creada con CREATEOFFLINE( ). Especifique el nombre de la vista sin conexión en SQLViewName. Utilice TABLEUPDATE( ) para actualizar los datos en el servidor.
Es necesario abrir la vista sin conexión de forma exclusiva. Incluya la cláusula EXCLUSIVE en USE o SET EXCLUSIVE en ON antes de abrir la vista sin conexión con USE.
ADMIN
Abre una vista sin conexión creada con CREATEOFFLINE( ), pero no actualiza los datos en el servidor con las modificaciones realizadas en la vista sin conexión. El hecho de abrir una vista sin conexión con la palabra clave ADMIN permite realizar cambios en la vista sin conexión sin actualizar los datos del servidor.
AGAIN
Para abrir una tabla de forma simultánea en varias áreas de trabajo, puede realizar alguna de las acciones siguientes:
• Seleccionar otra área de trabajo y ejecutar USE con el nombre de la tabla y la cláusula AGAIN.
• Ejecutar USE con el nombre de la tabla y la cláusula AGAIN, y especificar un área de trabajo distinta con la cláusula IN.
Cuando vuelva a abrir una tabla en otra área de trabajo, la tabla de la nueva área de trabajo tomará los atributos de la tabla del área de trabajo original. Por ejemplo, si la tabla se abre para acceso de sólo lectura o exclusivo, y se vuelve a abrir en otra área de trabajo, la tabla se abrirá con el mismo tipo de acceso en la nueva área de trabajo.
Los archivos de índice abiertos para la tabla original estarán disponibles para la tabla que vuelva a abrir si no abre ningún índice al abrir de nuevo la tabla. El orden de índice se establecerá en 0 en las áreas de trabajo donde vuelva a abrir la tabla.
Puede abrir índices que no estuvieran abiertos en la tabla original. El orden de índice se establece en 0 para la tabla original.
A una tabla abierta de nuevo se le asigna el alias predeterminado del área de trabajo. Puede incluir un alias cada vez que abra una tabla en varias áreas de trabajo, siempre y cuando los alias sean únicos.
En Visual FoxPro para Windows, al volver a abrir una tabla en otra área de trabajo no se consume ningún controlador de archivo adicional.
NOREQUERY [nDataSessionNumber]
Especifica que los datos de una vista SQL remota no se vuelvan a descargar. NOREQUERY solamente está disponible para vistas SQL y se suele utilizar cuando se vuelve a abrir una vista SQL, incluyendo la cláusula AGAIN. Al incluir la cláusula NOREQUERY se mejora el
rendimiento de grandes conjuntos de datos porque no es necesario volver a descargar los datos.
Observaciones
Si se ejecuta USE sin un nombre de tabla y está abierto un archivo de tabla en el área de trabajo actual, la tabla se cerrará. También se cerrará la tabla cuando se abra otra tabla en la misma área de trabajo. No puede tener abierta más de una tabla a la vez en una misma área de trabajo.
Ejemplo
En el ejemplo siguiente se abren tres tablas en tres áreas de trabajo distintas. Se abre la ventana Sesión de datos para mostrar dónde están abiertas las tablas y para mostrar el alias para cada tabla.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View
USE customer IN 0 && Opens Customer table
USE employee IN 0 && Opens Employee table
USE products IN 0 && Opens Products table
Observaciones
Si se ejecuta USE sin un nombre de tabla y está abierto un archivo de tabla en el área de trabajo actual, la tabla se cerrará. También se cerrará la tabla cuando se abra otra tabla en la misma área de trabajo. No puede tener abierta más de una tabla a la vez en una misma área de trabajo.
Ejemplo
En el ejemplo siguiente se abren tres tablas en tres áreas de trabajo distintas. Se abre la ventana Sesión de datos para mostrar dónde están abiertas las tablas y para mostrar el alias para cada tabla.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View
USE customer IN 0 && Opens Customer table
USE employee IN 0 && Opens Employee table
USE products IN 0 && Opens Products table
USE [[DatabaseName!]Table | SQLViewName| ?]
[IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN][NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList| ?
[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName]
[ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE]
[SHARED] [NOUPDATE] [CONNSTRING cConnectString]
Parámetros
[DatabaseName!]TableName
Especifica el nombre de la tabla que se va a abrir. Puesto que los espacios en blanco son importantes en los nombres de archivo de Microsoft Windows 98 y posteriores, evite usar espacios adicionales en TableName. Si un nombre de tabla contiene espacios, escríbalo entre comillas (" " o ' ')
Para abrir una tabla fuera de la base de datos actual, califique la tabla con el nombre de la base de datos, con un signo de exclamación (!) para separar el nombre de la base de datos del nombre de la tabla. Si no califica una tabla con un nombre de base de datos, Microsoft Visual FoxPro sólo podrá abrir las tablas de la base de datos actual. Si el nombre de la base de datos, el nombre de la tabla o ambos contienen espacios, escriba el nombre de la base de datos y el nombre de la tabla entre comillas (" " o ' ')
Nota Visual FoxPro no reconocerá correctamente un nombre de ruta de acceso si el nombre del disco o del directorio contiene un signo de exclamación (!).
SQLViewName
Especifica el nombre de una vista SQL de la base de datos actual que desea abrir. Las vistas de SQL se crean con CREATE SQL VIEW. SQLViewNametambién puede ser el nombre de una vista sin conexión creada con CREATEOFFLINE( ).
?
Muestra el cuadro de diálogo Uso, que le permite elegir una tabla para abrirla.
IN nWorkArea
Especifica el área de trabajo en la que se abre la tabla. Puede cerrar una tabla de un área de trabajo determinada, ejecutando USE con la cláusula IN y el número del área de trabajo.
La cláusula IN admite 0 como área de trabajo. Al incluir 0, se abrirá una tabla en el área de trabajo que tenga el número más bajo. Por ejemplo, si hay tablas abiertas en las áreas de trabajo de 1 a 10, el siguiente comando abrirá la tabla customer en el área de trabajo 11:
USE customer IN 0
IN cTableAlias
Especifica que la tabla se abre en el área de trabajo de una tabla que está abierta actualmente. El alias de la tabla abierta se especifica concTableAlias.
Si omite nWorkArea y cTableAlias, la tabla se abrirá en el área de trabajo seleccionada actualmente.
ONLINE
Abre una vista sin conexión creada con CREATEOFFLINE( ). Especifique el nombre de la vista sin conexión en SQLViewName. Utilice TABLEUPDATE( ) para actualizar los datos en el servidor.
Es necesario abrir la vista sin conexión de forma exclusiva. Incluya la cláusula EXCLUSIVE en USE o SET EXCLUSIVE en ON antes de abrir la vista sin conexión con USE.
ADMIN
Abre una vista sin conexión creada con CREATEOFFLINE( ), pero no actualiza los datos en el servidor con las modificaciones realizadas en la vista sin conexión. El hecho de abrir una vista sin conexión con la palabra clave ADMIN permite realizar cambios en la vista sin conexión sin actualizar los datos del servidor.
AGAIN
Para abrir una tabla de forma simultánea en varias áreas de trabajo, puede realizar alguna de las acciones siguientes:
• Seleccionar otra área de trabajo y ejecutar USE con el nombre de la tabla y la cláusula AGAIN.
• Ejecutar USE con el nombre de la tabla y la cláusula AGAIN, y especificar un área de trabajo distinta con la cláusula IN.
Cuando vuelva a abrir una tabla en otra área de trabajo, la tabla de la nueva área de trabajo tomará los atributos de la tabla del área de trabajo original. Por ejemplo, si la tabla se abre para acceso de sólo lectura o exclusivo, y se vuelve a abrir en otra área de trabajo, la tabla se abrirá con el mismo tipo de acceso en la nueva área de trabajo.
Los archivos de índice abiertos para la tabla original estarán disponibles para la tabla que vuelva a abrir si no abre ningún índice al abrir de nuevo la tabla. El orden de índice se establecerá en 0 en las áreas de trabajo donde vuelva a abrir la tabla.
Puede abrir índices que no estuvieran abiertos en la tabla original. El orden de índice se establece en 0 para la tabla original.
A una tabla abierta de nuevo se le asigna el alias predeterminado del área de trabajo. Puede incluir un alias cada vez que abra una tabla en varias áreas de trabajo, siempre y cuando los alias sean únicos.
En Visual FoxPro para Windows, al volver a abrir una tabla en otra área de trabajo no se consume ningún controlador de archivo adicional.
NOREQUERY [nDataSessionNumber]
Especifica que los datos de una vista SQL remota no se vuelvan a descargar. NOREQUERY solamente está disponible para vistas SQL y se suele utilizar cuando se vuelve a abrir una vista SQL, incluyendo la cláusula AGAIN. Al incluir la cláusula NOREQUERY se mejora el rendimiento de grandes conjuntos de datos porque no es necesario volver a descargar los datos.
nDataSessionNumber puede incluirse para especificar que los datos para una vista SQL remota de una sesión de datos determinada no se descarguen de nuevo. Si se omite nDataSessionNumber, los datos no se descargarán para la vista abierta en la sesión de datos actual.
Para obtener información adicional acerca de la cláusula NOREQUERY, vea Crear vistas.
NODATA
Especifica que sólo se descargue la estructura de una vista SQL. Los datos de la vista SQL no se descargan. NODATA es el método más rápido de determinar la estructura de una vista SQL.
Para obtener más información acerca de la cláusula NODATA, vea Crear vistas.
INDEX IndexFileList
Especifica un conjunto de índices que se deben abrir junto con la tabla. Si una tabla tiene un archivo de índice compuesto estructural, el archivo de índice se abrirá automáticamente con la tabla.
IndexFileList puede contener cualquier combinación de nombres de archivos de índice .idx de una sola entrada y .cdx de entrada compuesta. No necesita incluir las extensiones de los nombres de los archivos de índice, a no ser que haya archivos .idx y .cdx con el mismo nombre en la lista de archivos.
El archivo de índice cuyo nombre aparezca el primero en la lista de archivos de índice será el archivo de índice de control, y controlará cómo se tiene acceso y se muestran los registros de la tabla. Si el primer archivo de índice es un archivo de índice compuesto .cdx, se mostrarán los registros de la tabla y se tendrá acceso a ellos en el orden físico de los registros.
INDEX ?
Muestra el cuadro de diálogo Abrir con una lista de archivos de índice disponibles entre los que puede elegir.
ORDER [nIndexNumber]
Especifica una etiqueta de archivo de índice .cdx compuesto o un archivo .idx de índice de una sola entrada de control principal distinto del primer archivo de índice o de la primera etiqueta de índice especificados en IndexFileList.
Los archivos de índice .idx se numeran primero en el orden en que aparecen en la lista de archivos de índice. Las etiquetas de los archivos de índice compuesto estructural (si existe alguno) se numeran entonces en el orden en que se crearon las etiquetas. Por último, las etiquetas de todos los archivos de índice compuesto independientes se numeran en el orden en que se crearon. También puede utilizar SET ORDER para especificar el archivo de índice o la etiqueta de control. Vea SET ORDER para obtener más información acerca de la numeración de archivos y etiquetas de índice.
Si nIndexNumber es 0, los registros de la tabla se mostrarán y se tendrá acceso a ellos en el orden físico de los registros, y los registros permanecerán abiertos. La inclusión de ORDER 0 permitirá que todos los archivos de índice abiertos se actualicen mientras se presentan los registros ordenados por el número de registro. Incluir ORDER sin nIndexNumber es idéntico a incluir ORDER 0.
ORDER [IDXFileName]
Especifica un archivo de índice .idx de una sola entrada como archivo de índice de control principal.
ORDER [TAG TagName] [OF CDXFileName]
Especifica una etiqueta de control principal en un archivo de índice .cdx compuesto. El nombre de la etiqueta puede ser de un archivo de índice compuesto estructural o de cualquier archivo de índice compuesto que esté abierto. Si existen nombres de etiqueta idénticos en los archivos de índice compuesto abiertos, incluya OF CDXFileName y especifique el nombre del archivo de índice compuesto que contiene la etiqueta deseada.
ASCENDING
Especifica que se tiene acceso y se muestran los registros de la tabla en orden ascendente.
DESCENDING
Especifica que se tiene acceso y se muestran los registros de la tabla en orden descendente.
La inclusión de ASCENDING o DESCENDING no cambia el archivo o la etiqueta de índice: solamente altera el orden en que se muestran y se tiene acceso a los registros.
ALIAS cTableAlias
Crea un alias para la tabla. Puede hacer referencia a una tabla por su alias en los comandos y funciones que requieren o admiten un alias.
Cuando se abre una tabla, se le asigna automáticamente un alias, que es el nombre de la tabla si no se incluye ALIAS. Puede crear un alias nuevo o distinto para la tabla si incluye ALIAS. En Visual FoxPro, un alias puede contener hasta 254 letras, dígitos o signos de subrayado, y debe comenzar por una letra o un signo de subrayado. En las demás versiones de FoxPro, los alias pueden contener como máximo 10 letras, dígitos o signos de subrayado, y deben comenzar por una letra o un signo de subrayado.
Se asigna automáticamente un alias predeterminado cuando abre una sola tabla de forma simultánea en varias áreas de trabajo con AGAIN y no se especifica un alias al abrir la tabla en cada área de trabajo.
También se asigna un alias predeterminado cuando se produce un conflicto. Porejemplo:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View && Open the Data Session Window
USE customer ALIAS orders IN 1 && Alias is ORDERS
USE orders IN 3 && Conflict; alias is C
EXCLUSIVE
Abre la tabla para uso exclusivo en una red. Para obtener más información acerca del uso exclusivo de tablas, vea SET EXCLUSIVE.
SHARED
Abre una tabla para uso compartido en una red. SHARED permite abrir una tabla para uso compartido, incluso cuando EXCLUSIVE está establecido en ON.
NOUPDATE
Impide realizar cambios en la tabla y en su estructura.
CONNSTRING cConnectString
Especifica una cadena de conexión para el origen de datos ODBC. Puede usar la cadena de conexión en lugar de incluir explícitamente el origen de datos ODBC, la identificación del usuario y la contraseña.
Visual FoxPro pasa la cadena de conexión a la Vista remota especificada en SQLViewName, que a su vez utiliza esta cadena de conexión en lugar de las cadenas de conexión previamente definidas para conectar con el origen de datos especificado. Si se pasa una cadena vacía, "" , se muestra el cuadro de diálogo Origen de datos SQL, que permite al usuario seleccionar un origen de datos. Si especifica datos incompletos en la cadena de conexión, el origen de datos muestra un cuadro de diálogo de inicio de sesión para escribir los datos de inicio de sesión necesarios. Si omite el argumento opcional CONNSTRING cConnectionString, la vista remota utilizará la conexión predeterminada definida actualmente. Para obtener más información acerca de las cadenas de conexión de origen de datos, consulte la documentación del controlador ODBC.
Observaciones
Si se ejecuta USE sin un nombre de tabla y está abierto un archivo de tabla en el área de trabajo actual, la tabla se cerrará. También se cerrará la tabla cuando se abra otra tabla en la misma área de trabajo. No puede tener abierta más de una tabla a la vez en una misma área de trabajo.
Ejemplo
En el ejemplo siguiente se abren tres tablas en tres áreas de trabajo distintas. Se abre la ventana Sesión de datos para mostrar dónde están abiertas las tablas y para mostrar el alias para cada tabla.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View
USE customer IN 0 && Opens Customer table
USE employee IN 0 && Opens Employee table
USE products IN 0 && Opens Products table
APPEND (Comando)
Agrega uno o más registros nuevos al final de una tabla.
APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
Parámetros
BLANK
Agrega un registro en blanco al final de la tabla activa. Visual FoxPro no abre ninguna ventana de edición cuando usted ejecuta APPEND BLANK.
Es posible modificar los nuevos registros con BROWSE, CHANGE o EDIT.
IN nWorkArea
Especifica el área de trabajo de la tabla a la que se agrega el nuevo registro.
IN cTableAlias
Especifica el alias de la tabla a la que se agrega el nuevo registro.
Si omite nWorkArea y cTableAlias, se agregará 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 nWorkArea o cTableAlias, y la tabla se seleccionará automáticamente. Si ejecuta APPEND BLANK, se agregará un registro en blanco a la tabla especificada con nWorkArea o cTableAlias, y la tabla no se seleccionará.
NOMENU
Especifica que se eliminará el título de menú Tabla de la barra de menús del sistema, lo que impide efectuar cambios en el formato de la ventana de edición.
Observaciones
El cuadro de diálogo Abrir aparece cuando ejecuta APPEND o APPEND BLANK y no hay una tabla abierta en el área de trabajo activa. Elija una tabla para agregar registros.
APPEND abre una ventana de edición para que pueda escribir datos en uno o varios registros nuevos. Cuando agregue un nuevo registro, Visual FoxPro actualizará cualquier índice que haya abierto.
Ejemplo
El siguiente ejemplo utiliza APPEND BLANK para crear una tabla con 10 registros que contienen valores aleatorios y, a continuación, muestra los valores máximo y mínimo de la tabla.
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && Append 10 records
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) && Insert random values
ENDFOR
Agrega uno o más registros nuevos al final de una tabla.
APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
Parámetros
BLANK
Agrega un registro en blanco al final de la tabla activa. Visual FoxPro no abre ninguna ventana de edición cuando usted ejecuta APPEND BLANK.
Es posible modificar los nuevos registros con BROWSE, CHANGE o EDIT.
IN nWorkArea
Especifica el área de trabajo de la tabla a la que se agrega el nuevo registro.
IN cTableAlias
Especifica el alias de la tabla a la que se agrega el nuevo registro.
Si omite nWorkArea y cTableAlias, se agregará 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 nWorkArea o cTableAlias, y la tabla se seleccionará automáticamente. Si ejecuta APPEND BLANK, se agregará un registro en blanco a la tabla especificada con nWorkArea o cTableAlias, y la tabla no se seleccionará.
NOMENU
Especifica que se eliminará el título de menú Tabla de la barra de menús del sistema, lo que impide efectuar cambios en el formato de la ventana de edición.
Observaciones
El cuadro de diálogo Abrir aparece cuando ejecuta APPEND o APPEND BLANK y no hay una tabla abierta en el área de trabajo activa. Elija una tabla para agregar registros.
APPEND abre una ventana de edición para que pueda escribir datos en uno o varios registros nuevos. Cuando agregue un nuevo registro, Visual FoxPro actualizará cualquier índice que haya abierto.
Ejemplo
El siguiente ejemplo utiliza APPEND BLANK para crear una tabla con 10 registros que contienen valores aleatorios y, a continuación, muestra los valores máximo y mínimo de la tabla.
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && Append 10 records
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) && Insert random values
ENDFOR
CLEAR
LIST && Display the values
gnMaximum = 1 && Initialize minimum value
gnMinimum = 100 && Initialize maximum value
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ', gnMinimum && Display minimum value
? 'The maximum value is: ', gnMaximum && Display maximum value
GO | GOTO (Comando)Coloca el puntero de registro en el número de registro especificado de una tabla.
GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
Parámetros
RECORD nRecordNumber
Especifica el número de registro físico al que desea mover el puntero de registro. Puede omitir por completo GO o GOTO y especificar simplemente el número de registro. Si especifica solamente el número de registro, podrá mover el puntero solamente en el área de trabajo actual.
IN nWorkArea
Especifica el área de trabajo de la tabla en la cual se mueve el puntero de registro.
IN cTableAlias
Especifica el alias de la tabla en la cual se mueve el puntero de registro.
TOP
Sitúa 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 más bajo. Si el índice está en orden descendente, el primer registro será el registro con el valor clave más alto.
BOTTOM
Sitúa el puntero de registro en el último registro de la tabla. Si la tabla tiene activo un índice ascendente, el último registro será aquél con el valor de clave más elevado. Si el índice está en orden descendente, el último registro será el que tenga el menor valor de clave.
Observaciones
GO y GOTO pueden utilizarse indistintamente. Estos comandos actúan sobre la tabla del área de trabajo actual a menos que especifique otra área de trabajo con la cláusula IN.
Ejemplo
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Opens Products table
USE customer IN 0 && Opens Customer table
GO BOTTOM IN products
CLEAR
? RECNO('products')
GO TOP
? RECNO( ) && Displays 1
GO 5
? RECNO( ) && Displays 5
LIST && Display the values
gnMaximum = 1 && Initialize minimum value
gnMinimum = 100 && Initialize maximum value
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ', gnMinimum && Display minimum value
? 'The maximum value is: ', gnMaximum && Display maximum value
GO | GOTO (Comando)Coloca el puntero de registro en el número de registro especificado de una tabla.
GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
Parámetros
RECORD nRecordNumber
Especifica el número de registro físico al que desea mover el puntero de registro. Puede omitir por completo GO o GOTO y especificar simplemente el número de registro. Si especifica solamente el número de registro, podrá mover el puntero solamente en el área de trabajo actual.
IN nWorkArea
Especifica el área de trabajo de la tabla en la cual se mueve el puntero de registro.
IN cTableAlias
Especifica el alias de la tabla en la cual se mueve el puntero de registro.
TOP
Sitúa 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 más bajo. Si el índice está en orden descendente, el primer registro será el registro con el valor clave más alto.
BOTTOM
Sitúa el puntero de registro en el último registro de la tabla. Si la tabla tiene activo un índice ascendente, el último registro será aquél con el valor de clave más elevado. Si el índice está en orden descendente, el último registro será el que tenga el menor valor de clave.
Observaciones
GO y GOTO pueden utilizarse indistintamente. Estos comandos actúan sobre la tabla del área de trabajo actual a menos que especifique otra área de trabajo con la cláusula IN.
Ejemplo
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Opens Products table
USE customer IN 0 && Opens Customer table
GO BOTTOM IN products
CLEAR
? RECNO('products')
GO TOP
? RECNO( ) && Displays 1
GO 5
? RECNO( ) && Displays 5
CLEAR
LIST && Display the valuesgnMaximum = 1 && Initialize minimum value
gnMinimum = 100 && Initialize maximum value
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ',gnMinimum&& Display minimum value
? 'The maximum value is: ',gnMaximum&& Display maximum value
GO | GOTO (Comando)
Visual Studio .NET 2003
Personas que lo han encontrado útil: 2 de 2 - Valorar este tema
Coloca el puntero de registro en el número de registro especificado de una tabla.
GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
–O bien–
GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
Parámetros
RECORD nRecordNumber
Especifica el número de registro físico al que desea mover el puntero de registro. Puede omitir por completo GO o GOTO y especificar simplemente el número de registro. Si especifica solamente el número de registro, podrá mover el puntero solamente en el área de trabajo actual.
IN nWorkArea
Especifica el área de trabajo de la tabla en la cual se mueve el puntero de registro.
IN cTableAlias
Especifica el alias de la tabla en la cual se mueve el puntero de registro.
TOP
Sitúa 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 más bajo. Si el índice está en orden descendente, el primer registro será el registro con el valor clave más alto.
BOTTOM
Sitúa el puntero de registro en el último registro de la tabla. Si la tabla tiene activo un índice ascendente, el último registro será aquél con el valor de clave más elevado. Si el índice está en orden descendente, el último registro será el que tenga el menor valor de clave.
Observaciones
GO y GOTO pueden utilizarse indistintamente. Estos comandos actúan sobre la tabla del área de trabajo actual a menos que especifique otra área de trabajo con la cláusula IN.
Ejemplo
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Opens Products table
USE customer IN 0 && Opens Customer table
GO BOTTOM IN products
CLEAR
? RECNO('products')
GO TOP
? RECNO( ) && Displays 1
GO 5
? RECNO( ) &&Displays 5
EDIT
(Comando)
Personas que lo han encontrado útil: 2 de 2 - Valorar este tema
Muestracamposparaedición.
EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName]
[KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT | NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Parámetros
FIELDS FieldList
Especifica los campos que aparecen en la ventana Modificar. Los campos se muestran en el orden especificado en FieldList. En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.
Si omite FIELDS, se muestran todos los campos de la tabla en el orden en el que aparecen dentro de la estructura de la tabla.
La lista de campos puede especificar cualquier combinación de campos o campos calculados, incluyendo los pertenecientes a tablas abiertas en otras áreas de trabajo. La sintaxis de la lista de campos es la siguiente:
FieldName1
[:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]]
[:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]]
[:H = cHeadingText]
[:W = lExpression2]
[, FieldName2 [:R]...]
Campos Calculados
La lista de campos puede contener instrucciones para crear campos calculados. Un campo calculado contiene datos de sólo lectura creados con una expresión. Esta expresión puede tomar cualquier formato, pero siempre debe ser una expresión válida de Visual FoxPro.
La sintaxis de la instrucción utilizada para crear un campo calculado es:
CalculatedFieldName = eExpression
Este ejemplo crea un campo calculado denominado location:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
La lista de campos de la cláusula FIELDS incluye ocho opciones, que permiten la manipulación especial de los campos mostrados en la ventana Modificar.
:nColumnWidth
Especifica el tamaño de presentación de un campo en las columnas. El valor de :nColumnWidth no afecta al tamaño del campo de la tabla; sólo cambia la forma en que el campo aparece en la ventana Modificar.
:R
En el ejemplo siguiente se abre una ventana Modificar con los campos cust_id y company. El campo cust_id es de sólo lectura y no puede cambiarse.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS cust_id:R, company
:V = lExpression1
Especifica una opción de verificación que realiza la validación de datos a nivel de campo dentro de la ventana Modificar. Si lExpression1 se evalúa con el resultado verdadero (.T.) cuando mueve el cursor fuera del campo, los datos introducidos en el campo se consideran correctos y el cursor se mueve al campo siguiente.
Si lExpression1 se evalúa con el resultado falso (.F.), los datos introducidos se consideran incorrectos, el cursor permanece dentro del campo y se muestra un mensaje. Si lExpression1 se evalúa como 0, los datos introducidos se consideran incorrectos y el cursor permanece en el campo, pero no se muestra ningún mensaje de error.
De forma predeterminada, lExpression1 sólo se evalúa cuando se modifica el campo. Para forzar la comprobación, incluya la opción :F.
Puede presentar su propio mensaje de error incluyendo la opción :E.
La opción de verificación no se ejecuta para los campos memo.
:F
Especifica una opción de validación obligada que determina si la expresión de la opción de verificación(lExpression1) se debe evaluar al mover el cursor fuera del campo o cuando se activa otra ventana. Si no se incluye :F, lExpression1 sólo se evaluará si se hace algún cambio en el campo. Si :F está incluida, lExpression1 se evalúa aunque no se haya modificado el campo.
:E = cMessageText
Muestra un mensaje de error especificado con cMessageText en lugar del mensaje predeterminado del sistema.
Si la expresión de validación :V = lExpression1 se evalúa con el resultado verdadero (.T.), el cursor sale del campo con normalidad. Si la expresión se evalúa con el resultado falso (.F.), el cursor permanece en el campo y aparece el mensaje de error.
Si la expresión de validación :V = lExpression1 se evalúa como 0, no se muestra ningún mensaje y el cursor permanece en el campo que se esté validando. Esto le permite mostrar sus propios mensajes de error en las rutinas de validación.
El mensaje de error solamente se muestra si SET NOTIFY está ON. Si SET BELL está establecido en ON, sonará un aviso acústico.
El ejemplo siguiente abre la tabla products y muestra los campos product_id y prod_name. Introduzca un valor superior a 100 en el campoproduct_id para realizar la validación de campo.
:V especifica el criterio de validación. :F fuerza que se ejecute la validación tanto si se cambian los datos como si no. :E reemplaza el mensaje de error del sistema de Visual FoxPro por un mensaje de error definido por el usuario.
En Visual FoxPro y en FoxPro para Windows, el mensaje de error se muestra en la barra de estado situada en la parte inferior de la ventana principal de Visual FoxPro.
Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
EDIT FIELDS in_stock :V = in_stock< 100 ;
:F ;
:E = 'The stock amount must be less than 100'
:P = cFormatCodes
Especifica una opción de imagen que le permite crear una plantilla de edición especificada con cFormatCodes que controle la visualización y salida de los datos para cada campo de una ventana Modificar.
Para obtener más información acerca del uso de códigos de edición de imagen, vea las propiedades Format e InputMask.
El ejemplo siguiente utiliza la opción de imagen para permitir únicamente datos numéricos con un determinado formato en el campo unit_price:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS unit_price :P = '99,999.99'
:B = eLowerBound, eUpperBound [:F]
Especifica los límites entre los que deben encontrarse los datos. Las expresiones de límite eLowerBound y eUpperBound deben coincidir con el tipo de datos del campo y no pueden ser nombres de funciones definidas por el usuario. Si los datos introducidos no están incluidos entre eLowerBound yeUpperBound, se muestra un mensaje del sistema indicando el intervalo de datos que se acepta.
De forma predeterminada, se comprueba que los datos escritos quedan dentro de los límites sólo si se hacen cambios en el contenido del campo. Para forzar la comprobación, incluya la opción de forzar validación (:F).
El siguiente ejemplo se asegura que el valor del campo in_stock esté entre 1 y 100. Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS in_stock :B = 1, 100 :F
:H = cHeadingText
Especifica una opción de encabezado (:H) que le permite sustituir los nombres predeterminados de los campos por sus propios encabezados, que se especifican con cHeadingText. De forma predeterminada, los nombres de campos se sitúan a la izquierda de los campos de la ventana Modificar.
El ejemplo siguiente proporciona encabezados definidos por el usuario para los campos mostrados.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
:W = lExpression2
Especifica una opción WHEN que le permite prohibir condicionalmente que el cursor se mueva a un campo basándose en el valor de la expresión lógica lExpression. (:W) evalúa lExpression. Si lExpression2 se evalúa con el resultado falso (.F.), no es posible mover el cursor al campo. Si lExpression2 se evalúa con el resultado verdadero (.T.), es posible mover el cursor al campo. En lExpression2 es posible utilizar funciones definidas por el usuario.
Si el campo actual está marcado como de sólo lectura, se prohíbe el movimiento del cursor a todos los campos. Esto ocurre sólo cuando todos los campos contienen una cláusula WHEN que da como resultado falso.
Scope
Especifica un intervalo de registros que se presentan en la ventana Modificar. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORDnRecordNumber y REST. Los comandos que incluyen Scope sólo actúan sobre la tabla del área de trabajo activa. El alcance predeterminado para EDIT es ALL, es decir todos los registros.
Para obtener más información, vea Scope (Cláusulas)
FOR lExpression1
Especifica que solamente se muestran en la ventana Modificar los registros que satisfacen la condición lógica lExpression1. Este argumento le permite filtrar los registros no deseados.
Rushmore optimiza una consulta EDIT FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Si desea obtener más información, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los registros se muestran en la ventana Modificar mientras la expresión lógica lExpression2 se evalúe con el resultado verdadero (.T.).
FONT cFontName [, nFontSize]
Especifica la fuente y el tamaño de fuente de la ventana Modificar. La expresión de caracteres cFontName es el nombre de la fuente y la expresión numérica nFontSize es el tamaño de la fuente. Por ejemplo, la siguiente cláusula especifica la fuente Courier de 16 puntos para los campos mostrados en la ventana Modificar:
FONT 'Courier',16
Si incluye la cláusula FONT, pero omite el tamaño de fuente nFontSize, se utilizará una fuente de 10 puntos en la ventana Modificar.
Si omite la cláusula FONT, se usará MS Sans Serif de 8 puntos. Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares.
STYLE cFontStyle
En Visual FoxPro y en FoxPro para Windows, especifica el estilo de fuente para la ventana Modificar. Si omite la cláusula STYLE, se utiliza el estilo de fuente Normal.
Si el estilo de fuente especificado no está disponible, se sustituye por otro de características similares.
Carácter Estilo de la fuente
B Negrita
I Cursiva
N Normal
O Contorno
Q Opaco
S Sombra
- Tachado
T Transparente
U Subrayado
Puede incluir más de un carácter para especificar una combinación de estilos de fuente. El siguiente ejemplo abre una ventana Modificar y utiliza una fuente subrayada:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
IF _WINDOWS
EDIT FIELDS contact FONT 'System', 15 STYLE 'NU'
ENDIF
IF _MAC
EDIT FIELDS contact FONT 'Geneva', 14 STYLE 'NU'
ENDIF
FREEZE FieldName
Permite realizar cambios solamente en un campo especificado con FieldName en la ventana Modificar. Los demás campos se muestran pero no se pueden modificar.
KEY eExpression1 [, eExpression2]
Limita el alcance de los registros que se muestran en la ventana Modificar. Con KEY puede especificar un valor de clave de índice (eExpression1) o un intervalo de valores de clave (eExpression1 , eExpression2) para los registros mostrados en la ventana Modificar. La tabla debe estar indizada, y el valor o los valores de clave de índice incluidos en la cláusula KEY deben ser del mismo tipo de datos que la expresión de índice del archivo de índice maestro o de la etiqueta maestra.
En el ejemplo siguiente solamente se muestran en la ventana Modificar los códigos postales incluidos en el intervalo de 10.000 a 30.000:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
SET ORDER TO postalcode
EDIT KEY '10000', '30000'
LAST | NOINIT
Guarda todos los cambios de
configuración realizados en la apariencia de una ventana Modificar. Los cambios
se guardan en el archivo FOXUSER y pueden incluir cambios en la lista de
campos, el tamaño de cada campo y la ubicación y el tamaño de la ventana
Modificar. Para obtener más información sobre este archivo, vea SET RESOURCE.
Si ejecuta EDIT con la cláusula LAST, la ventana Modificar se abre con la misma configuración con la que se guardó por última vez en el archivo FOXUSER. De esta forma se recupera la configuración previa de la ventana Modificar creada con el comando EDIT anterior. Si el último comando EDIT ejecutado en la ventana Comandos incluía una larga lista de cláusulas, ejecute EDIT LAST para no tener que volver a escribir el comando.
Cualquier cambio de ventana de Edición que realice en la sesión actual no se guarda si sale de EDIT presionando CTRL+Q.
LPARTITION
Sitúa el cursor en el primer campo de la partición de la izquierda de la ventana Modificar. La ventana Modificar se puede dividir en particiones izquierda y derecha incluyendo la cláusula PARTITION. De forma predeterminada, el cursor está situado en el primer campo de la partición derecha al abrir la ventana Modificar.
El cursor se coloca en la partición de la derecha de la ventana Modificar si incluye LPARTITION sin la cláusula PARTITION.
NAME ObjectName
Crea una referencia de objeto para la ventana Modificar, permitiéndole manipular dicha ventana mediante las propiedades orientadas a objetos disponibles para el control Grid.
Si desea obtener información adicional acerca de la programación orientada a objetos en Visual FoxPro, vea Programación orientada a objetos. Para obtener información adicional acerca de las propiedades del control Grid que puede especificar para una ventana Modificar creada mediante la cláusula NAME, vea el tema Grid (Control).
NOAPPEND
Impide que el usuario agregue registros a la tabla presionando CTRL+Y o eligiendo Modo Anexar en el menú Ver.
Nota La inclusión de NOAPPEND no impide anexar un registro desde dentro de una rutina (creada con VALID, WHEN u ON KEY LABEL) mientras se está dentro de la ventana Modificar.
NOCAPTION
Especifica que se utilice siempre el nombre de campo de la tabla o vista para los encabezados de columna, aunque la base de datos contenga un título descriptivo para la tabla. Esta cláusula sólo se aplica a las tablas o vistas de una base de datos.
NODELETE
Impide que se marquen registros para su eliminación desde dentro de una ventana Modificar. De forma predeterminada, un registro se puede marcar para su eliminación presionando CTRL+T, eligiendo Alternar marca para eliminación en el menú Tabla o haciendo clic en la columna situada más a la izquierda del registro a eliminar.
Nota La inclusión de NODELETE no impide marcar un registro para su eliminación desde dentro de una rutina (creada con VALID, WHEN u ON KEY LABEL) mientras se está dentro de la ventana Modificar.
NOEDIT | NOMODIFY
Impide a un usuario modificar la tabla. NOEDIT y NOMODIFY son idénticas. Si incluye cualquiera de las dos cláusulas, podrá examinar o buscar en la tabla, pero no modificarla. Sin embargo, sí es posible anexar y eliminar registros.
NOLINK
Desvincula particiones de la ventana Modificar. De forma predeterminada, las particiones izquierda y derecha de la ventana Modificar están vinculadas: al desplazarse por una partición también se moverá la otra.
NOMENU
Elimina el título de menú Tabla en Visual FoxPro de la barra de menús del sistema, impidiendo el acceso al menú Edición.
NOOPTIMIZE
Desactiva la optimización Rushmore de EDIT.
Para obtener más información vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
NORMAL
Abre la ventana Modificar con su configuración normal predeterminada para opciones tales como color, tamaño, posición, título y controles (GROW, FLOAT, ZOOM, etc.). Si omite NORMAL y la ventana de resultados actual es una ventana definida por el usuario con su propia configuración, la ventana Modificar asume también esos valores definidos por el usuario.
NOWAIT
Continúa la ejecución del programa inmediatamente después de abrir la ventana Modificar. El programa no espera a que se cierre la ventana Modificar, sino que continúa la ejecución en la línea del programa inmediatamente siguiente a la que contiene EDIT NOWAIT. Si omite NOWAIT, cuando se ejecuta EDIT desde dentro de un programa, se abre una ventana Modificar y la ejecución del programa se interrumpe hasta el cierre de la ventana Modificar.
NOWAIT sólo está disponible desde dentro de un programa. Incluir NOWAIT cuando se ejecuta EDIT desde la ventana Comandos no ejerce ningún efecto.
PARTITION nColumnNumber
Divide la ventana Modificar en particiones izquierda y derecha, donde nColumnNumber especifica el número de columna de la barra de división. Por ejemplo, si nColumnNumber es 20, la barra de división se sitúa en la columna 20 de la ventana Modificar.
LEDIT
Especifica que la partición izquierda de la ventana Modificar aparece en modo Examinar.
REDIT
Especifica que la partición derecha de la ventana Modificar aparece en modo Examinar. Este ejemplo abre una ventana Modificar con la barra de división situada en la columna 20 y la partición derecha abierta en modo Examinar.
Incluya ambas palabras clave para abrir las dos particiones en el modo Examinar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
EDIT PARTITION 30 REDIT
PREFERENCE PreferenceName
Guarda los atributos y opciones de una ventana Modificar para su uso posterior. A diferencia de LAST, que restablece la ventana Modificar tal y como aparecía en la sesión anterior, PREFERENCE guarda los atributos de dicha ventana indefinidamente en el archivo de recursos FOXUSER. Las preferencias se pueden recuperar en cualquier momento. Para obtener más información acerca del archivo de recursos FOXUSER, vea SET RESOURCE.
Ejecutar EDIT con PreferenceName especificado por primera vez crea en el archivo FOXUSER una entrada donde se guarda la configuración de la ventana Modificar. Al ejecutar EDIT posteriormente con el mismo nombre de preferencia se recupera la ventana Modificar con el estado de dicha preferencia. Cuando se cierra la ventana Modificar, el estado de preferencia se actualiza.
Los nombres de preferencia pueden tener una longitud máxima de 10 caracteres, deben comenzar por una letra o un subrayado, y pueden contener cualquier combinación de letras, números y subrayados.
Una vez que tenga las preferencias configuradas de la manera deseada, podrá impedir que cambien. Cierre la ventana Modificar, ejecute SET RESOURCE OFF, abra el archivo FOXUSER como tabla y cambie el campo que contiene la preferencia para que sea de sólo lectura modificando el valor del campo lógico READONLY a verdadero (.T.).
Para obtener más información acerca del archivo de recursos FOXUSER, vea SET RESOURCE.
REST
Impide que el puntero del registro se mueva de su posición actual hasta la parte superior de la tabla. De forma predeterminada, EDIT sitúa el puntero del registro en la parte superior de la tabla.
Si ejecuta EDIT con la cláusula LAST, la ventana Modificar se abre con la misma configuración con la que se guardó por última vez en el archivo FOXUSER. De esta forma se recupera la configuración previa de la ventana Modificar creada con el comando EDIT anterior. Si el último comando EDIT ejecutado en la ventana Comandos incluía una larga lista de cláusulas, ejecute EDIT LAST para no tener que volver a escribir el comando.
Cualquier cambio de ventana de Edición que realice en la sesión actual no se guarda si sale de EDIT presionando CTRL+Q.
LPARTITION
Sitúa el cursor en el primer campo de la partición de la izquierda de la ventana Modificar. La ventana Modificar se puede dividir en particiones izquierda y derecha incluyendo la cláusula PARTITION. De forma predeterminada, el cursor está situado en el primer campo de la partición derecha al abrir la ventana Modificar.
El cursor se coloca en la partición de la derecha de la ventana Modificar si incluye LPARTITION sin la cláusula PARTITION.
NAME ObjectName
Crea una referencia de objeto para la ventana Modificar, permitiéndole manipular dicha ventana mediante las propiedades orientadas a objetos disponibles para el control Grid.
Si desea obtener información adicional acerca de la programación orientada a objetos en Visual FoxPro, vea Programación orientada a objetos. Para obtener información adicional acerca de las propiedades del control Grid que puede especificar para una ventana Modificar creada mediante la cláusula NAME, vea el tema Grid (Control).
NOAPPEND
Impide que el usuario agregue registros a la tabla presionando CTRL+Y o eligiendo Modo Anexar en el menú Ver.
Nota La inclusión de NOAPPEND no impide anexar un registro desde dentro de una rutina (creada con VALID, WHEN u ON KEY LABEL) mientras se está dentro de la ventana Modificar.
NOCAPTION
Especifica que se utilice siempre el nombre de campo de la tabla o vista para los encabezados de columna, aunque la base de datos contenga un título descriptivo para la tabla. Esta cláusula sólo se aplica a las tablas o vistas de una base de datos.
NODELETE
Impide que se marquen registros para su eliminación desde dentro de una ventana Modificar. De forma predeterminada, un registro se puede marcar para su eliminación presionando CTRL+T, eligiendo Alternar marca para eliminación en el menú Tabla o haciendo clic en la columna situada más a la izquierda del registro a eliminar.
Nota La inclusión de NODELETE no impide marcar un registro para su eliminación desde dentro de una rutina (creada con VALID, WHEN u ON KEY LABEL) mientras se está dentro de la ventana Modificar.
NOEDIT | NOMODIFY
Impide a un usuario modificar la tabla. NOEDIT y NOMODIFY son idénticas. Si incluye cualquiera de las dos cláusulas, podrá examinar o buscar en la tabla, pero no modificarla. Sin embargo, sí es posible anexar y eliminar registros.
NOLINK
Desvincula particiones de la ventana Modificar. De forma predeterminada, las particiones izquierda y derecha de la ventana Modificar están vinculadas: al desplazarse por una partición también se moverá la otra.
NOMENU
Elimina el título de menú Tabla en Visual FoxPro de la barra de menús del sistema, impidiendo el acceso al menú Edición.
NOOPTIMIZE
Desactiva la optimización Rushmore de EDIT.
Para obtener más información vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
NORMAL
Abre la ventana Modificar con su configuración normal predeterminada para opciones tales como color, tamaño, posición, título y controles (GROW, FLOAT, ZOOM, etc.). Si omite NORMAL y la ventana de resultados actual es una ventana definida por el usuario con su propia configuración, la ventana Modificar asume también esos valores definidos por el usuario.
NOWAIT
Continúa la ejecución del programa inmediatamente después de abrir la ventana Modificar. El programa no espera a que se cierre la ventana Modificar, sino que continúa la ejecución en la línea del programa inmediatamente siguiente a la que contiene EDIT NOWAIT. Si omite NOWAIT, cuando se ejecuta EDIT desde dentro de un programa, se abre una ventana Modificar y la ejecución del programa se interrumpe hasta el cierre de la ventana Modificar.
NOWAIT sólo está disponible desde dentro de un programa. Incluir NOWAIT cuando se ejecuta EDIT desde la ventana Comandos no ejerce ningún efecto.
PARTITION nColumnNumber
Divide la ventana Modificar en particiones izquierda y derecha, donde nColumnNumber especifica el número de columna de la barra de división. Por ejemplo, si nColumnNumber es 20, la barra de división se sitúa en la columna 20 de la ventana Modificar.
LEDIT
Especifica que la partición izquierda de la ventana Modificar aparece en modo Examinar.
REDIT
Especifica que la partición derecha de la ventana Modificar aparece en modo Examinar. Este ejemplo abre una ventana Modificar con la barra de división situada en la columna 20 y la partición derecha abierta en modo Examinar.
Incluya ambas palabras clave para abrir las dos particiones en el modo Examinar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
EDIT PARTITION 30 REDIT
PREFERENCE PreferenceName
Guarda los atributos y opciones de una ventana Modificar para su uso posterior. A diferencia de LAST, que restablece la ventana Modificar tal y como aparecía en la sesión anterior, PREFERENCE guarda los atributos de dicha ventana indefinidamente en el archivo de recursos FOXUSER. Las preferencias se pueden recuperar en cualquier momento. Para obtener más información acerca del archivo de recursos FOXUSER, vea SET RESOURCE.
Ejecutar EDIT con PreferenceName especificado por primera vez crea en el archivo FOXUSER una entrada donde se guarda la configuración de la ventana Modificar. Al ejecutar EDIT posteriormente con el mismo nombre de preferencia se recupera la ventana Modificar con el estado de dicha preferencia. Cuando se cierra la ventana Modificar, el estado de preferencia se actualiza.
Los nombres de preferencia pueden tener una longitud máxima de 10 caracteres, deben comenzar por una letra o un subrayado, y pueden contener cualquier combinación de letras, números y subrayados.
Una vez que tenga las preferencias configuradas de la manera deseada, podrá impedir que cambien. Cierre la ventana Modificar, ejecute SET RESOURCE OFF, abra el archivo FOXUSER como tabla y cambie el campo que contiene la preferencia para que sea de sólo lectura modificando el valor del campo lógico READONLY a verdadero (.T.).
Para obtener más información acerca del archivo de recursos FOXUSER, vea SET RESOURCE.
REST
Impide que el puntero del registro se mueva de su posición actual hasta la parte superior de la tabla. De forma predeterminada, EDIT sitúa el puntero del registro en la parte superior de la tabla.
SAVE
Mantiene activas y visibles
(abiertas) la ventana Modificar y cualquiera de sus ventanas de edición de
texto para campos memo. Puede volver a la ventana Modificar después de recorrer
las demás ventanas abiertas con el teclado o con el mouse.
SAVE sólo está disponible desde dentro de un programa. SAVE no ejerce ningún efecto cuando se incluye con EDIT en la ventana Comandos porque EDIT SAVE siempre es el valor predeterminado en el modo interactivo.
TIMEOUT nSeconds
Especifica el periodo de tiempo que una ventana Modificar espera la introducción de datos. La expresión numérica nSeconds especifica cuántos segundos pueden transcurrir sin entrada antes de que la ventana Modificar se cierre automáticamente.
TIMEOUT solamente está disponible desde el interior de un programa y no ejerce ningún efecto cuando se ejecuta EDIT desde la ventana Comandos. En el ejemplo siguiente, la ventana Modificar se cierra si no se produce ninguna entrada en 10 segundos.
DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ;
CLOSE ;
GROW ;
COLOR SCHEME 10
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT WINDOW wEdit ;
FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
TIMEOUT 10
RELEASE WINDOW wEdit
TITLE cTitleText
Anula el nombre de tabla o alias predeterminado que aparece en la barra de título de la ventana Modificar, mostrando el título especificado concTitleText. De lo contrario, el nombre o el alias de la tabla que se está examinando aparecerá en la barra de título.
Si ejecuta EDIT WINDOW para colocar la ventana Modificar en una ventana definida por el usuario, el título de la ventana Modificar sustituye al título de la ventana definida por el usuario.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT;
TITLE 'My Edit Window' ;
FIELDS phone :H = 'Phone Number' , ;
company :H = 'Company:'
VALID lExpression3
Efectúa la validación a nivel de registro en una ventana Modificar. La cláusula VALID se ejecuta solamente si se produce un cambio en el registro y se mueve el cursor a otro registro. La cláusula VALID no se ejecutará si sólo se hacen cambios en campos memo.
Si VALID devuelve verdadero (.T.), podrá mover el cursor a otro registro. Si VALID devuelve falso (.F.), el cursor permanece en el campo actual y Visual FoxPro muestra un mensaje de error. Puede presentar su propio mensaje de error cuando VALID devuelva falso incluyendo la cláusula ERROR. La expresión de caracteres cMessageText se presenta como mensaje de error. Si VALID devuelve 0, el cursor permanecerá en el campo actual y no se mostrará ningún mensaje de error.
No debe confundirse la cláusula VALID con la opción de verificación (:V), que activa la validación a nivel de campo.
:F
Fuerza la ejecución de la cláusula VALID antes de que el usuario desplace el cursor hasta el siguiente registro. En este caso, VALID se ejecutará aunque no se hagan cambios en el registro.
ERROR cMessageText
Especifica un mensaje de error que anula el predeterminado del sistema y cuyo contenido se define con cMessageText. Visual FoxPro presenta el mensaje de error especificado cuando VALID devuelve falso (.F.).
WHEN lExpression4
Evalúa una condición cuando el usuario desplaza el cursor a otro registro. Si lExpression4 se evalúa como verdadero (.T.), el usuario puede modificar el registro al que se ha movido. Si lExpression4 se evalúa como falso (.F.) o como 0, el registro al que se mueve el usuario será de sólo lectura y no se podrá modificar.
La cláusula WHEN no se ejecuta cuando está activada otra ventana.
WIDTH nFieldWidth
Limita al valor especificado en nFieldWidth el número de caracteres mostrados para todos los campos de una partición de la ventana Modificar. La inclusión de la cláusula WIDTH no modifica el tamaño de los campos de la propia tabla; solamente altera la forma en que estos campos se muestran en la ventana Modificar. Si se ha especificado un ancho para un campo individual con la cláusula FIELDS, éste suplantará al ancho especificado con la cláusula WIDTH para ese campo.
WINDOW WindowName1
Especifica una ventana definida por el usuario cuyas características asume la ventana Modificar. Por ejemplo, si la ventana definida por el usuario se crea con la cláusula FLOAT, podrá mover la ventana Modificar. La ventana especificada no tiene que estar activa o visible necesariamente, pero debe estar definida.
IN [WINDOW] WindowName2
Especifica la ventana primaria dentro de la cual se abre la ventana Modificar. La ventana Modificar se mostrará dentro de una ventana primaria sin asumir las características de la ventana primaria. Una ventana Modificar activada dentro de una ventana primaria no se puede mover fuera de ella. Si se mueve la ventana primaria, la ventana Modificar se moverá con ella.
Para obtener acceso a la ventana Modificar, es necesario haber definido en primer lugar la ventana primaria con DEFINE WINDOW, y que esta ventana primaria esté activa y visible.
IN SCREEN
Coloca explícitamente una ventana Modificar en la ventana principal de Visual FoxPro cuando hay una ventana definida por el usuario activa.
COLOR SCHEME nSchemeNumber
Especifica el número de un esquema de colores empleado para los colores de la ventana Modificar. En Visual FoxPro y en FoxPro para Windows, la ventana Modificar asume el esquema de colores establecido mediante la opción Color del Panel de control.
Observaciones
EDIT le permite modificar la tabla seleccionada dentro de una ventana. EDIT se comporta de idéntica forma que CHANGE.
Si presiona ESC para salir de la ventana Modificar, los cambios realizados al último campo modificado se descartarán. Sin embargo, si pasa a otro registro después de modificar un campo, se guardarán los cambios realizados al campo.
Dentro de un programa, utilice DEACTIVATE WINDOW para guardar sus cambios y cerrar una ventana Modificar. Incluya el nombre de la ventana Modificar en DEACTIVATE WINDOW. Para obtener más información acerca de los nombres de la ventana Modificar, vea WTITLE( ).
Compatibilidad con SET SKIP
SET SKIP le permite establecer una relación de uno a varios entre dos tablas (vea el ejemplo). Por cada registro de la tabla primaria puede haber múltiples registros relacionados en la tabla secundaria. Si crea una relación de uno a varios, puede utilizar EDIT para ver registros procedentes tanto de la tabla primaria como de la tabla secundaria.
El registro primario se muestra una vez, junto con el primer registro coincidente de la tabla secundaria. Los demás registros coincidentes se mostrarán en las filas que siguen al registro primario y al primer registro coincidente secundario. En FoxPro para MS-DOS, se muestran bloques sombreados en cualquier columna que contenga información de la tabla principal más allá del primer registro coincidente. En Visual FoxPro y en FoxPro para Windows, el carácter de relleno para la información repetida de la tabla primaria depende de la fuente empleada en la ventana Modificar actual.
Para obtener más información al respecto, vea SET SKIP.
Compatibilidad con COL(°) y ROW(°)
Use COL( ) y ROW( ) para devolver la posición actual de pantalla, en filas y columnas, donde está situado el cursor en una ventana Modificar. Si hay una ventana Modificar abierta en la ventana principal de Visual FoxPro, la posición del cursor que se devuelve está en relación con la ventana principal de Visual FoxPro, y no con la propia ventana Modificar. Si hay una ventana Modificar abierta en una ventana definida por el usuario, COL( ) y ROW( ) devuelven la posición del cursor en relación con la ventana definida por el usuario.
Ejemplo
El ejemplo siguiente utiliza SET SKIP para crear una relación de uno a varios entre dos tablas. Hay un único registro de la tabla (customer) para cada factura creada. La tabla secundaria (orders) contiene múltiples registros para cada registro de la tabla primaria.
Una vez creada la relación, se abre una ventana Modificar mostrando registros de ambas tablas.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
SET RELATION TO cust_id INTO orders && Establish relationship
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
EDIT FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
SAVE sólo está disponible desde dentro de un programa. SAVE no ejerce ningún efecto cuando se incluye con EDIT en la ventana Comandos porque EDIT SAVE siempre es el valor predeterminado en el modo interactivo.
TIMEOUT nSeconds
Especifica el periodo de tiempo que una ventana Modificar espera la introducción de datos. La expresión numérica nSeconds especifica cuántos segundos pueden transcurrir sin entrada antes de que la ventana Modificar se cierre automáticamente.
TIMEOUT solamente está disponible desde el interior de un programa y no ejerce ningún efecto cuando se ejecuta EDIT desde la ventana Comandos. En el ejemplo siguiente, la ventana Modificar se cierra si no se produce ninguna entrada en 10 segundos.
DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ;
CLOSE ;
GROW ;
COLOR SCHEME 10
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT WINDOW wEdit ;
FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
TIMEOUT 10
RELEASE WINDOW wEdit
TITLE cTitleText
Anula el nombre de tabla o alias predeterminado que aparece en la barra de título de la ventana Modificar, mostrando el título especificado concTitleText. De lo contrario, el nombre o el alias de la tabla que se está examinando aparecerá en la barra de título.
Si ejecuta EDIT WINDOW para colocar la ventana Modificar en una ventana definida por el usuario, el título de la ventana Modificar sustituye al título de la ventana definida por el usuario.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT;
TITLE 'My Edit Window' ;
FIELDS phone :H = 'Phone Number' , ;
company :H = 'Company:'
VALID lExpression3
Efectúa la validación a nivel de registro en una ventana Modificar. La cláusula VALID se ejecuta solamente si se produce un cambio en el registro y se mueve el cursor a otro registro. La cláusula VALID no se ejecutará si sólo se hacen cambios en campos memo.
Si VALID devuelve verdadero (.T.), podrá mover el cursor a otro registro. Si VALID devuelve falso (.F.), el cursor permanece en el campo actual y Visual FoxPro muestra un mensaje de error. Puede presentar su propio mensaje de error cuando VALID devuelva falso incluyendo la cláusula ERROR. La expresión de caracteres cMessageText se presenta como mensaje de error. Si VALID devuelve 0, el cursor permanecerá en el campo actual y no se mostrará ningún mensaje de error.
No debe confundirse la cláusula VALID con la opción de verificación (:V), que activa la validación a nivel de campo.
:F
Fuerza la ejecución de la cláusula VALID antes de que el usuario desplace el cursor hasta el siguiente registro. En este caso, VALID se ejecutará aunque no se hagan cambios en el registro.
ERROR cMessageText
Especifica un mensaje de error que anula el predeterminado del sistema y cuyo contenido se define con cMessageText. Visual FoxPro presenta el mensaje de error especificado cuando VALID devuelve falso (.F.).
WHEN lExpression4
Evalúa una condición cuando el usuario desplaza el cursor a otro registro. Si lExpression4 se evalúa como verdadero (.T.), el usuario puede modificar el registro al que se ha movido. Si lExpression4 se evalúa como falso (.F.) o como 0, el registro al que se mueve el usuario será de sólo lectura y no se podrá modificar.
La cláusula WHEN no se ejecuta cuando está activada otra ventana.
WIDTH nFieldWidth
Limita al valor especificado en nFieldWidth el número de caracteres mostrados para todos los campos de una partición de la ventana Modificar. La inclusión de la cláusula WIDTH no modifica el tamaño de los campos de la propia tabla; solamente altera la forma en que estos campos se muestran en la ventana Modificar. Si se ha especificado un ancho para un campo individual con la cláusula FIELDS, éste suplantará al ancho especificado con la cláusula WIDTH para ese campo.
WINDOW WindowName1
Especifica una ventana definida por el usuario cuyas características asume la ventana Modificar. Por ejemplo, si la ventana definida por el usuario se crea con la cláusula FLOAT, podrá mover la ventana Modificar. La ventana especificada no tiene que estar activa o visible necesariamente, pero debe estar definida.
IN [WINDOW] WindowName2
Especifica la ventana primaria dentro de la cual se abre la ventana Modificar. La ventana Modificar se mostrará dentro de una ventana primaria sin asumir las características de la ventana primaria. Una ventana Modificar activada dentro de una ventana primaria no se puede mover fuera de ella. Si se mueve la ventana primaria, la ventana Modificar se moverá con ella.
Para obtener acceso a la ventana Modificar, es necesario haber definido en primer lugar la ventana primaria con DEFINE WINDOW, y que esta ventana primaria esté activa y visible.
IN SCREEN
Coloca explícitamente una ventana Modificar en la ventana principal de Visual FoxPro cuando hay una ventana definida por el usuario activa.
COLOR SCHEME nSchemeNumber
Especifica el número de un esquema de colores empleado para los colores de la ventana Modificar. En Visual FoxPro y en FoxPro para Windows, la ventana Modificar asume el esquema de colores establecido mediante la opción Color del Panel de control.
Observaciones
EDIT le permite modificar la tabla seleccionada dentro de una ventana. EDIT se comporta de idéntica forma que CHANGE.
Si presiona ESC para salir de la ventana Modificar, los cambios realizados al último campo modificado se descartarán. Sin embargo, si pasa a otro registro después de modificar un campo, se guardarán los cambios realizados al campo.
Dentro de un programa, utilice DEACTIVATE WINDOW para guardar sus cambios y cerrar una ventana Modificar. Incluya el nombre de la ventana Modificar en DEACTIVATE WINDOW. Para obtener más información acerca de los nombres de la ventana Modificar, vea WTITLE( ).
Compatibilidad con SET SKIP
SET SKIP le permite establecer una relación de uno a varios entre dos tablas (vea el ejemplo). Por cada registro de la tabla primaria puede haber múltiples registros relacionados en la tabla secundaria. Si crea una relación de uno a varios, puede utilizar EDIT para ver registros procedentes tanto de la tabla primaria como de la tabla secundaria.
El registro primario se muestra una vez, junto con el primer registro coincidente de la tabla secundaria. Los demás registros coincidentes se mostrarán en las filas que siguen al registro primario y al primer registro coincidente secundario. En FoxPro para MS-DOS, se muestran bloques sombreados en cualquier columna que contenga información de la tabla principal más allá del primer registro coincidente. En Visual FoxPro y en FoxPro para Windows, el carácter de relleno para la información repetida de la tabla primaria depende de la fuente empleada en la ventana Modificar actual.
Para obtener más información al respecto, vea SET SKIP.
Compatibilidad con COL(°) y ROW(°)
Use COL( ) y ROW( ) para devolver la posición actual de pantalla, en filas y columnas, donde está situado el cursor en una ventana Modificar. Si hay una ventana Modificar abierta en la ventana principal de Visual FoxPro, la posición del cursor que se devuelve está en relación con la ventana principal de Visual FoxPro, y no con la propia ventana Modificar. Si hay una ventana Modificar abierta en una ventana definida por el usuario, COL( ) y ROW( ) devuelven la posición del cursor en relación con la ventana definida por el usuario.
Ejemplo
El ejemplo siguiente utiliza SET SKIP para crear una relación de uno a varios entre dos tablas. Hay un único registro de la tabla (customer) para cada factura creada. La tabla secundaria (orders) contiene múltiples registros para cada registro de la tabla primaria.
Una vez creada la relación, se abre una ventana Modificar mostrando registros de ambas tablas.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
SET RELATION TO cust_id INTO orders && Establish relationship
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
EDIT FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
BROWSE
(Comando)
Personas que lo han encontrado útil: 9 de 13 - Valorar este tema
Abre la ventana Examinar y muestra los registros de la tabla en uso o seleccionada.
BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize]]
[STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT]
[FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST | NOINIT]
[LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND]
[NOCAPTIONS] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]]
[WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber]
Parámetros
FIELDS FieldList
Especifica los campos que aparecerán en la ventana Examinar. Los campos se muestran en el orden especificado en FieldList. En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.
Si omite FIELDS, se mostrarán todos los campos de la tabla en el orden en que aparecen en la estructura de la tabla.
FONT cFontName [, nFontSize]
Especifica la fuente y el tamaño de fuente de la ventana Examinar. La expresión de caracteres cFontName es el nombre de la fuente y la expresión numérica nFontSize es el tamaño de la fuente. Por ejemplo, la cláusula siguiente especifica la fuente Courier de 16 puntos para los campos que se muestran en la ventana Examinar:
FONT 'Courier',16
Si incluye la cláusula FONT pero omite el tamaño de fuente nFontSize, se usará una fuente de 10 puntos en la ventana Examinar. Si omite la cláusula FONT, se usará MS Sans Serif de 8 puntos.
Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares.
STYLE cFontStyle
Especifica el estilo de fuente de la ventana Examinar. Si omite la cláusula STYLE, se usará el estilo de fuente normal
Si el estilo de fuente especificado no está disponible, se usará un estilo con características similares o bien el estilo de fuente normal.
Carácter Estilo de fuente
B Negrita
I Cursiva
N Normal
O Contorno
Q Opaco
S Sombra
– Tachado
T Transparente
U Subrayado
Puede incluir más de un carácter para especificar una combinación de estilos de fuente. El ejemplo siguiente abre una ventana Examinar y utiliza una fuente subrayada:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
IF _WINDOWS
BROWSE FIELDS contact FONT 'System', 15 STYLE 'NU'
ENDIF
IF _MAC
BROWSE FIELDS contact FONT 'Geneva', 14 STYLE 'NU'
ENDIF
FOR lExpression1
Especifica una condición por la cual sólo se mostrarán en la ventana Examinar aquellos registros para los que lExpression1 sea verdadera.
Rushmore optimiza una consulta especificada con BROWSE FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR. Si desea obtener más información acerca de las expresiones optimizables con Rushmore, veaSET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
Incluya FOR si desea mover el puntero de registro hasta el primer registro que cumpla la condición. Incluya REST si desea dejar el puntero de registro en su posición actual.
REST
Impide que el puntero de registro se desplace desde su posición actual hasta la parte superior de la tabla cuando se abra una ventana Examinar con la cláusula FOR. De lo contrario, BROWSE situará el puntero de registro al principio de la tabla de forma predeterminada.
FORMAT
Especifica el uso de un archivo de formato para controlar la presentación y el formato de entrada de datos en una ventana Examinar. Es necesario abrir primero el archivo de formato con SET FORMAT. La información siguiente se extrae del archivo de formato y se aplica a la ventana Examinar:
• La lista de campos que se van a examinar
• Todas las cláusulas VALID
• Todas las cláusulas WHEN
• Todas las cláusulas RANGE
• Tamaños de campo (especificados en cláusulas PICTURE)
• Todas las expresiones SAY (que se incluyen como campos BROWSE calculados)
El ejemplo siguiente utiliza un archivo de formato para validar los datos escritos en una ventana Examinar. Las posiciones especificadas mediante @ ... GET se pasan por alto.
La primera línea crea un campo BROWSE (cust_id) que tiene 5 caracteres de ancho y que permite sólo la entrada de letras y dígitos. La segunda línea crea un campo BROWSE (company) que no puede quedar en blanco y puede contener un máximo de 20 caracteres alfabéticos.
La tercera línea crea un campo BROWSE (contact) en el que sólo se pueden escribir datos cuando está en blanco.
Éste es el contenido del archivo de formato Custentr.fmt, que se usa para validar los datos que se escriben en la tabla customer:
@ 3,0 GET cust_id PICTURE 'NNNNN'
@ 3,0 GET company VALID company != SPACE(40) ;
PICTURE 'AAAAAAAAAAAAAAAAAAAA'
@ 3,0 GET contact WHEN contact = SPACE(40)
* This is the program that uses the format file
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
SET FORMAT TO custentr.fmt
BROWSE FORMAT
FREEZE FieldName
Permite realizar cambios en un único campo de la ventana Examinar. Debe especificar este campo mediante FieldName. Los demás campos se muestran pero no se pueden modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
FREEZE phone
KEY eExpression1 [, eExpression2]
Limita el alcance de los registros que se presentarán en la ventana Examinar. Con KEY puede especificar un valor de clave de índice (eExpression1) o un intervalo de valores de clave (eExpression1, eExpression2) para los registros que se mostrarán en la ventana Examinar. La tabla que se va a examinar debe estar indizada y el valor o los valores de clave de índice incluidos en la cláusula KEY deben ser del mismo tipo de datos que la expresión de índice del archivo de índice o de la etiqueta principal.
Por ejemplo, la tabla customer incluye un campo de caracteres que contiene códigos postales. Si la tabla se indiza mediante el campo de código postal, en la cláusula KEY podrá especificar un intervalo de códigos postales.
En el ejemplo siguiente, sólo se presentarán en la ventana Examinar aquellos registros cuyos códigos postales estén dentro del intervalo de 10.000 a 30.000:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
SET ORDER TO postalcode
BROWSE KEY '10000', '30000'
LAST | NOINIT
Guarda cualquier cambio de configuración realizado en la apariencia de una ventana Examinar. Los cambios se guardan en el archivo FOXUSER y pueden incluir cambios a la lista de archivos, al tamaño de cada campo, y a la ubicación y el tamaño de la ventana Examinar.
Si ejecuta BROWSE con la cláusula LAST o NOINIT, la ventana Examinar se abrirá con la misma configuración que tenía la última vez que se guardó en el archivo FOXUSER si SET RESOURCE está establecido en ON. Esto restaurará la configuración anterior de la ventana Examinar creada con el último comando BROWSE. Si el último comando BROWSE ejecutado en la ventana Comandos incluía una lista larga de cláusulas, ejecute BROWSE con la opción LAST o NOINIT para no tener que volver a escribir el comando. Para obtener más información acerca del archivo FOXUSER, vea SET RESOURCE.
Si la última ventana Examinar se abrió con un comando BROWSE que incluía una cláusula PREFERENCE, BROWSE LAST no restaurará la preferencia.
Los cambios que se hagan en la configuración de la ventana Examinar durante la sesión actual no se guardarán si sale de BROWSE presionando CTRL+Q.
Las cláusulas LAST y NOINIT son idénticas; NOINIT ofrece compatibilidad con dBASE.
LOCK nNumberOfFields
Especifica el número de campos que puede ver en la partición izquierda de la ventana Examinar sin necesidad de desplazarse o de usar tabulaciones. El tamaño de la partición izquierda se ajusta automáticamente para mostrar el número de campos especificado mediante nNumberOfFields.
LPARTITION
Especifica que el cursor está situado en el primer campo de la partición izquierda de la ventana Examinar. De forma predeterminada, el cursor se sitúa en el primer campo de la partición derecha al abrirse la ventana.
NAME ObjectName
Crea una referencia de objeto para la ventana Examinar, lo que permite manipular dicha ventana mediante las propiedades orientadas a objetos disponibles para el control Grid. Si desea obtener información adicional acerca de la programación orientada a objetos en Visual FoxPro, veaProgramación orientada a objetos. Para obtener información adicional acerca de las propiedades del control Grid que puede especificar para una ventana Examinar creada mediante la cláusula NAME, vea el tema Grid (Control).
NOAPPEND
Impide que el usuario agregue registros a la tabla al presionar CTRL+Y o al elegir la opción Anexar registro del menú Tabla.
Nota La inclusión de NOAPPEND no impide que se anexen registros desde una rutina (creada con VALID, WHEN u ON KEY LABEL) mientras se está en la ventana Examinar.
NOCAPTIONS
Especifica que se utilice siempre el nombre de campo de la tabla o vista para los encabezados de columna, aunque la base de datos contenga un título descriptivo para el campo de la tabla. Esta cláusula sólo se aplica a las tablas o vistas de una base de datos.
NODELETE
Impide marcar registros para su eliminación desde una ventana Examinar. De forma predeterminada, un registro se puede marcar para su eliminación al presionar CTRL+T, al elegir la opción Alternar eliminación del menú Tabla o al hacer clic en la columna situada más a la izquierda del registro que se va a eliminar.
NOEDIT | NOMODIFY
Impide a un usuario modificar la tabla. NOEDIT y NOMODIFY son idénticas. Si incluye cualquiera de las dos cláusulas, podrá examinar o buscar en la tabla, pero no modificarla. Sin embargo, sí es posible anexar y eliminar registros.
NOLGRID
Quita las líneas de cuadrícula del campo en la partición izquierda de la ventana Examinar.
NORGRID
Quita las líneas de cuadrícula del campo en la partición derecha de la ventana Examinar.
NOLINK
Desvincula las particiones de una ventana Examinar. De forma predeterminada, las particiones izquierda y derecha de la ventana Examinar están vinculadas para que cuando usted se desplace por una partición también se desplace la otra.
NOMENU
Quita de la barra de menús del sistema el título del menú Tabla, lo que impide el acceso al menú Examinar.
NOOPTIMIZE
Desactiva la optimización Rushmore de BROWSE. Si desea obtener más información, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
NOREFRESH
Impide actualizar la ventana Examinar. Las ventanas Examinar se actualizan según la frecuencia determinada mediante SET REFRESH. NOREFRESH es útil con los archivos de sólo lectura y mejora el rendimiento.
NORMAL
Abre la ventana Examinar con su configuración normal predeterminada, como colores, tamaño, posición, título y opciones de controles (GROW, FLOAT, ZOOM, etc.). Si omite NORMAL y la ventana actual de resultado es una ventana definida por el usuario con su propia configuración, la ventana Examinar utilizará también la configuración definida por el usuario.
NOWAIT
Continúa la ejecución del programa inmediatamente después de que se abra la ventana Examinar. El programa no espera a que se cierre la ventana Examinar, sino que sigue ejecutando la línea de programa que sigue inmediatamente a la línea que contiene BROWSE NOWAIT. Si omite NOWAIT cuando ejecuta BROWSE en un programa, se abrirá una ventana Examinar y la ejecución del programa se interrumpirá hasta que se cierre dicha ventana.
NOWAIT sólo está disponible desde dentro de un programa. Incluir NOWAIT no tiene efecto cuando BROWSE se ejecuta en la ventana Comandos.
PARTITION nColumnNumber
Divide una ventana Examinar en las particiones izquierda y derecha; nColumnNumber especifica el número de columnas de la barra de división. Por ejemplo, si nColumnNumber es 20, la barra de división se situará en la columna 20 de la ventana Examinar.
LEDIT
Especifica que la partición izquierda de la ventana Examinar aparecerá en modo de edición.
REDIT
Especifica que la partición derecha de la ventana Examinar aparecerá en modo de edición. El ejemplo siguiente abre una ventana Examinar con la barra de división situada en la columna 20 y la partición derecha abierta en modo de edición.
Incluya ambas palabras clave si desea abrir ambas particiones en modo de edición.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE PARTITION 20 REDIT
PREFERENCE PreferenceName
Guarda los atributos y las opciones de una ventana Examinar para su uso posterior. A diferencia de LAST, que restaura la ventana Examinar tal como aparecía en la sesión anterior, PREFERENCE guarda indefinidamente en el archivo de recursos FOXUSER los atributos de una ventana Examinar. Las preferencias se pueden recuperar en cualquier momento.
Al ejecutar BROWSE con el nombre de preferencia especificado por primera vez se crea una entrada en el archivo FOXUSER que almacena la configuración de la ventana Examinar. Si más tarde ejecuta BROWSE con el mismo nombre de preferencia, se restaurará la ventana Examinar con el estado de dicha preferencia. Cuando se cierra la ventana Examinar, las preferencias se actualizan.
Los nombres de preferencia pueden tener hasta 10 caracteres de longitud, deben empezar con una letra o un signo de subrayado, y pueden contener cualquier combinación de letras, números y signos de subrayado.
Una vez que tenga las preferencias configuradas de la manera deseada, podrá impedir que cambien. Cierre la ventana Examinar, ejecute SET RESOURCE OFF, abra el archivo FOXUSER como tabla y cambie a sólo lectura el registro que contiene la preferencia; para ello, cambie el valor del campo lógico READONLY a verdadero (.T.).
Para obtener más información acerca del archivo de recursos FOXUSER, vea SET RESOURCE.
Si sale de la ventana Examinar presionando CTRL+Q, los cambios de la ventana Examinar no se guardarán en el archivo de recursos.
SAVE
Mantiene activas y visibles (abiertas) la ventana Examinar y cualquiera de sus ventanas de edición de texto para campos memo. Puede volver a la ventana Examinar después de recorrer las demás ventanas abiertas con el teclado o con el mouse.
SAVE sólo está disponible desde dentro de un programa. SAVE no tiene ningún efecto cuando se incluye con BROWSE en la ventana Comandos porque BROWSE SAVE es siempre la opción predeterminada en el modo interactivo.
TIMEOUT nSeconds
Especifica el tiempo que una ventana Examinar espera recibir una entrada. La expresión numérica nSeconds especifica cuántos segundos pueden transcurrir sin que se produzca ninguna entrada antes de que la ventana Examinar se cierre automáticamente.
TIMEOUT sólo está disponible desde dentro de un programa; no tiene efecto cuando BROWSE se ejecuta en la ventana Comandos. En el ejemplo siguiente, la ventana Examinar se cierra si no se recibe ninguna entrada en 10 segundos.
DEFINE WINDOW wBrowse FROM 1,1 TO 24,40 ;
CLOSE ;
GROW ;
COLOR SCHEME 10
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE WINDOW wBrowse ;
FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
TIMEOUT 10
RELEASE WINDOW wBrowse
TITLE cTitleText
Reemplaza el nombre o el alias predeterminado de tabla que aparece en la barra de título de la ventana Examinar con el título especificado mediantecTitleText. De lo contrario, el nombre o el alias de la tabla que se está examinando aparecerá en la barra de título.
Si ejecuta BROWSE WINDOW para situar la ventana Examinar en una ventana definida por el usuario, el título de la ventana Examinar reemplazará el de la ventana definida por el usuario.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE;
TITLE 'My Browse Window' ;
FIELDS phone :H = 'Phone Number' , ;
company :H = 'Company:'
VALID lExpression2
Realiza una validación a nivel de registros en una ventana Examinar. La cláusula VALID sólo se ejecutará si hace algún cambio en el registro e intenta desplazar el cursor a otro registro. La cláusula VALID no se ejecutará si sólo se hacen cambios en campos memo.
Si VALID devuelve un valor verdadero (.T.), el usuario podrá desplazar el cursor a otro registro. Si VALID devuelve un valor falso (.F.), el cursor permanecerá en el campo actual y Visual FoxPro mostrará un mensaje de error. Si VALID devuelve 0, el cursor permanecerá en el campo actual y no se mostrará ningún mensaje de error.
No debe confundirse la cláusula VALID con la opción de verificación (:V), que activa la validación a nivel de campo.
:F
Fuerza la ejecución de la cláusula VALID antes de que el usuario desplace el cursor hasta el siguiente registro. En este caso, VALID se ejecutará aunque no se hagan cambios en el registro.
ERROR cMessageText
Especifica un mensaje de error que aparecerá en lugar del mensaje de error predeterminado del sistema. Visual FoxPro mostrará cMessageTextcuando VALID devuelva falso (.F.).
WHEN lExpression3
Evalúa una condición cuando el usuario desplaza el cursor a otro registro. Si lExpression3 da como resultado verdadero (.T.), el usuario podrá modificar el registro al que se ha desplazado. Si lExpression3 da como resultado falso (.F.) o 0, el registro al que se desplace el usuario se convertirá en un registro de sólo lectura y no podrá modificarse.
La cláusula WHEN no se ejecuta cuando está activada otra ventana.
WIDTH nFieldWidth
Limita a nFieldWidth el número de caracteres mostrados para todos los campos en una ventana Examinar. Se podrá desplazar horizontalmente por el contenido de un campo mediante las teclas Flecha izquierda y Flecha derecha, o la barra de desplazamiento horizontal. La inclusión de la cláusula WIDTH no cambia el tamaño de los campos de la tabla; sólo altera la forma en que se muestran los campos en la ventana Examinar. Si se ha especificado un ancho para un campo individual con la cláusula FIELDS, éste suplantará al ancho especificado con la cláusula WIDTH para ese campo.
WINDOW WindowName1
Especifica una ventana definida por el usuario cuyas características asumirá la ventana Examinar. Por ejemplo, si la ventana se ha definido con la cláusula FLOAT, la ventana Examinar podrá desplazarse. La ventana especificada no tiene que estar activa o visible necesariamente, pero debe estar definida.
IN [WINDOW] WindowName2
Especifica la ventana primaria dentro de la cual se abrirá la ventana Examinar. La ventana Examinar no asume las características de la ventana primaria. Una ventana Examinar activada dentro de una ventana primaria no podrá desplazarse fuera de ella. Si la ventana primaria se mueve, la ventana Examinar se moverá con ella.
Para tener acceso a la ventana Examinar, la ventana primaria debe definirse primero con DEFINE WINDOW y debe estar activa y visible.
IN SCREEN
Coloca explícitamente una ventana Examinar en la ventana principal de Visual FoxPro cuando está activa una ventana definida por el usuario.
COLOR SCHEME nSchemeNumber
Especifica el número de un esquema de colores empleado para los colores de la ventana Examinar.
La ventana Examinar asume el esquema de colores establecido mediante Color del Panel de control de Windows.
Observaciones
Una ventana Examinar permite ver y modificar registros de una tabla y anexar registros adicionales. Visual FoxPro permite tener varias ventanas Examinar abiertas al mismo tiempo.
Si presiona ESC para salir de la ventana Examinar, se descartarán los cambios realizados en el último campo que haya modificado. Sin embargo, si pasa a otro registro después de modificar un campo, se guardarán los cambios realizados al campo.
La lista de campos puede especificar cualquier combinación de campos o campos calculados. La sintaxis de la lista de campos es la siguiente:
FieldName1
[:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]]
[:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]]
[:H = cHeadingText]
[:W = lExpression2]
[, FieldName2 [:R]...]
Campos calculados… La lista de campos puede contener instrucciones para crear campos calculados. Un campo calculado contiene datos de sólo lectura creados con una expresión. Esta expresión puede tomar cualquier forma, pero debe ser una expresión válida de Visual FoxPro.
El formato de la instrucción que se utiliza para crear un campo calculado es la siguiente:
CalculatedFieldName = eExpression
En este ejemplo se crea un campo calculado llamado location:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS location = ALLTRIM(city) + ', ' + country
city y country son nombres de campos de la tabla seleccionada actualmente.
La lista de campos de la cláusula FIELDS incluye opciones que permiten el tratamiento especial de los campos que se muestran en la ventana Examinar:
:R
Especifica que el campo es de sólo lectura. Los datos que contiene pueden verse pero no modificarse.
En el ejemplo siguiente se abre una ventana Examinar con los campos cust_id y company. El campo cust_id es de sólo lectura y no puede cambiarse.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS cust_id:R, company
:nColumnWidth
Especifica el tamaño de presentación de un campo en las columnas. El valor de:nColumnWidth no afecta al tamaño del campo en la tabla; sólo altera la forma en que se muestra el campo en la ventana Examinar.
:V = lExpression1 [:F] [:E = cMessageText]
Permite realizar la validación de datos a nivel de campo dentro de la ventana Examinar. Si lExpression1 da como resultado verdadero (.T.) cuando se desplaza el cursor desde un campo, la entrada de datos en el campo se considerará correcta y el cursor se desplazará al campo siguiente.
Si lExpression1 da como resultado falso (.F.), la entrada de datos se considerará incorrecta, el cursor permanecerá en el campo y se mostrará un mensaje. Si lExpression1 da como resultado 0, la entrada de datos se considerará incorrecta y el cursor permanecerá en el campo, pero no se mostrará ningún mensaje de error.
La opción de verificación no se ejecuta para los campos memo.
De forma predeterminada, lExpression1 sólo se evalúa cuando se modifica el campo. Para forzar la comprobación, incluya la opción :F.
Puede mostrar su propio mensaje de error si incluye la opción :E que se describe más adelante.
:F
Determina si la expresión especificada en la opción de verificación se evaluará cuando mueva el cursor fuera de un campo o cuando se active otra ventana. Si no se incluye :F, lExpression1 sólo se evaluará si se hace algún cambio en el campo. Si se incluye :F, lExpression1 se evaluará aunque el campo no se haya modificado.
:E = cMessageText
Si la expresión de validación:V = lExpression1 da como resultado verdadero (.T), el cursor abandonará el campo normalmente. Si la expresión da como resultado falso (.F.), el cursor permanecerá en el campo y Visual FoxPro mostrará un mensaje de error.
Si se incluye la opción de error (:E), se mostrará cMessageText en lugar del mensaje de error del sistema. cMessageText sólo se muestra si SET NOTIFY es ON. Si SET BELL está establecido en ON, sonará un aviso acústico.
Si :V = lExpression1 da como resultado 0, no se mostrará ningún mensaje y el cursor permanecerá en el campo que se esté validando. Esto permite mostrar sus propios mensajes de error en rutinas de validación.
El ejemplo siguiente abre la tabla products y muestra los campos product_id y prod_name. El campo product_id es un campo numérico que aceptará hasta cinco números. Para este ejemplo consideraremos como no válido un product_id mayor que 100.
:V especifica el criterio de validación. :F fuerza que se ejecute la validación tanto si se cambian los datos como si no. :E reemplaza el mensaje de error del sistema de Visual FoxPro por un mensaje de error definido por el usuario. En Visual FoxPro, el mensaje de error se muestra en la barra de estado, en la parte inferior de la ventana principal de Visual FoxPro.
Presione ESC para cerrar la ventana Examinar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
BROWSE FIELDS in_stock :V = in_stock< 100 ;
:F ;
:E = 'The stock amount must be less than 100'
:P = cFormatCodes
Si incluye una cláusula FIELDS, también podrá especificar una opción de imagen (:P) para cada campo de la lista. La opción de imagen permite crear una lista de códigos que controle la presentación y entrada de datos para cada campo de la ventana Examinar. cFormatCodes es la lista de códigos.
El ejemplo siguiente utiliza la opción de imagen para permitir únicamente datos numéricos con un determinado formato en el campo unit_price:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS unit_price :P = '99,999.99'
Vea Format (Propiedad) e InputMask (Propiedad) para obtener más información acerca de los códigos de opción de imagen.
:B = eLowerBound, eUpperBound [:F]
Especifica un conjunto de límites entre los cuales deben estar comprendidos los datos de un campo. Las expresiones de límite eLowerBound yeUpperBound deben coincidir con el tipo de datos del campo. No pueden ser funciones definidas por el usuario. Si los datos escritos no quedan dentro de eLowerBound y eUpperBound, aparecerá un mensaje de error del sistema que indica el intervalo entre el que deben estar comprendidos los datos.
De forma predeterminada, se comprueba que los datos escritos quedan dentro de los límites sólo si se hacen cambios en el contenido del campo. Para forzar la comprobación, incluya la opción de forzar validación (:F).
El ejemplo siguiente garantiza que el valor del campo in_stock están entre 1 y 100. Presione ESC para cerrar la ventana Examinar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS in_stock :B = 1, 100 :F
:H = cHeadingText
Reemplaza los nombres predeterminados de campo por sus propios encabezados, que usted especifica mediante cHeadingText. De forma predeterminada, los nombres de campo se utilizan como encabezados de columna en la ventana Examinar.
El ejemplo siguiente proporciona encabezados definidos por el usuario para los campos mostrados.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
:W = lExpression2
Determina si se puede desplazar el cursor a un campo. Si lExpression2 da como resultado falso (.F.), se prohibirá que el cursor se desplace al campo. Si lExpression2 se evalúa como verdadero (.T.), el cursor puede moverse al campo. En lExpression2 es posible utilizar funciones definidas por el usuario.
Si se prohíbe desplazar el cursor a todos los campos, el registro actual se marcará como de sólo lectura. Esto ocurre sólo cuando todos los campos contienen una cláusula WHEN que da como resultado falso.
Soporte de SET SKIP… SET SKIP permite establecer una relación uno a varios entre dos tablas. Por cada registro de la tabla primaria puede haber múltiples registros relacionados en la tabla secundaria. Si crea una relación uno a varios, podrá utilizar BROWSE para ver registros tanto de la tabla primaria como de la tabla secundaria.
El registro primario se muestra una vez, junto con el primer registro coincidente de la tabla secundaria. Los demás registros coincidentes se mostrarán en las filas que siguen al registro primario y al primer registro coincidente secundario. El carácter de relleno para la información primaria repetida depende de la fuente actual de la ventana Examinar.
Si se sitúa el puntero de registro en un registro primario, podrá desplazarlo entre los registros primarios de la ventana Examinar si presiona CTRL+FLECHA ABAJO para ir al siguiente registro primario o CTRL+FLECHA ARRIBA para ir al registro primario anterior. Si desea obtener más información acerca de la creación de relaciones uno a varios, vea SET SKIP.
La lista de campos de la cláusula FIELDS contiene los registros de la tabla primaria y de la secundaria. Los nombres de los campos están precedidos por el alias de su tabla (orders o customer) y un punto.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
SET RELATION TO cust_id INTO orders && Establish relationship
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
BROWSE FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
Funciones útiles… Algunas funciones de Visual FoxPro devuelven información útil acerca de la ventana Examinar.
Función Descripción
VARREAD( )
Devuelve el nombre del campo donde está situado el cursor para la ventana Examinar activa.
RECNO( )
Devuelve el número del registro seleccionado en la ventana Examinar activa.
LIST (Comandos)
Visual Studio .NET 2003
Personas que lo han encontrado útil: 3 de 7 - Valorar este tema
Muestra continuamente información de tabla o de entorno.
LIST [FIELDS FieldList] [Scope] [FOR lExpression1]
[WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
-or-
LIST FILES [ON Drive] [LIKE FileSkeleton]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
-or-
LIST MEMORY [LIKE FileSkeleton] [NOCONSOLE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
-or-
LIST STATUS [NOCONSOLE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
-or-
LIST STRUCTURE [IN nWorkArea | cTableAlias] [NOCONSOLE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
Observaciones
Estos comandos LIST son idénticos a los comandos DISPLAY, excepto en las diferencias siguientes:
ADDITIVE
Anexa al final del archivo especificado. Si omite ADDITIVE, se sobrescribirá el archivo con el valor de la expresión.
• El alcance predeterminado de LIST es ALL (todos los registros).
• LIST no le avisa después de llenar con información la ventana principal de Microsoft Visual FoxPro o una ventana definida por el usuario.
• LIST no muestra los registros marcados para su eliminación cuando SET DELETED esté establecido en ON.
Para obtener más información acerca de los comandos LIST, vea los comandos DISPLAY correspondientes.
DISPLAY
(Comando)
Personas que lo han encontrado útil: 0 de 1 - Valorar este tema
Muestra información acerca de la tabla activa en la ventana principal de Visual FoxPro o en la ventana definida por el usuario.
DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1]
[WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE]
[TO PRINTER [PROMPT] | TO FILE FileName]
Parámetros
FIELDS FieldList
Especifica los campos que se deben mostrar. Si omite FIELDS FieldList, se mostrarán de forma predeterminada todos los campos de la tabla.
El contenido de los campos memo no se mostrará a no ser que se incluya explícitamente el nombre del campo memo en la lista de campos. El ancho con el que se mostrarán los campos memo se determina con SET MEMOWIDTH.
Alcance
Especifica el intervalo de registros que se va a mostrar. Solamente se muestran los registros incluidos en el intervalo. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. Los comandos que incluyen Scope sólo actúan sobre la tabla del área de trabajo activa.
Para obtener más información acerca de las cláusulas de alcance, vea el tema Scope (cláusulas).
El alcance predeterminado para DISPLAY es el registro actual (NEXT 1).
FOR lExpression1
Especifica que solamente se muestran los registros que satisfacen la condición lógica lExpression1. Esto permite filtrar los registros no deseados.
Rushmore optimiza una consulta creada con DISPLAY ... FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Si desea obtener más información, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los registros se muestran siempre que la expresión lógica lExpression2 dé como resultado verdadero (.T.).
OFF
Suprime la vista del número de registro. Si omite OFF, se mostrará el número de registro antes de cada registro.
NOCONSOLE
Impide que se muestre el resultado en la ventana principal de Visual FoxPro o en la ventana activa definida por el usuario.
NOOPTIMIZE
Desactiva la optimización Rushmore de DISPLAY.
Si desea obtener más información, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
TO PRINTER [PROMPT]
Dirige el resultado de DISPLAY a una impresora.
En Visual FoxPro, puede incluir la cláusula opcional PROMPT para mostrar un cuadro de diálogo antes de que comience la impresión. En este cuadro de diálogo, puede ajustar la configuración de la impresora, incluidos el número de copias y los números de las páginas que desea imprimir. Las opciones de configuración de la impresora que puede ajustar dependen del controlador de impresora que tenga instalado actualmente. Coloque PROMPT justo después de TO PRINTER.
TO FILE FileName
Dirige el resultado de DISPLAY al archivo especificado con FileName. Si el archivo ya existe y SET SAFETY está establecido en ON, el sistema le preguntará si desea sobrescribir el archivo.
Observaciones
DISPLAY muestra el contenido de los registros y los resultados de las expresiones de la tabla actual. Si existe más información de la que cabe en la ventana, se presentará la primera pantalla de información y Visual FoxPro se detendrá. Presione cualquier tecla o haga clic en cualquier parte para ver la siguiente pantalla de información. DISPLAY es similar a LIST, con la diferencia de que LIST muestra la misma información con un flujo continuo y sin detenerse.
DISPLAY puede utilizarse también para mostrar los resultados de expresiones, que pueden consistir en literales, variables de memoria, elementos de matrices, campos y campos memo. Se muestran los nombres de los campos y las expresiones a menos que SET HEADINGS esté establecido en ON.
Ejemplo
El ejemplo siguiente abre la tabla customer de la base de datos testdata. Se muestra el contenido del primer registro.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
DISPLAY FIELD cust_id, company, contact OFF NEXT 10
MODIFY STRUCTURE
(Comando)
Personas que lo han encontrado útil: 0 de 1 - Valorar este tema
Muestra el Diseñador de tablas, que permite modificar la estructura de una tabla.
MODIFY STRUCTURE
Observaciones
En versiones anteriores de FoxPro, MODIFY STRUCTURE abría el cuadro de diálogo Estructura de la tabla.
Si no hay ninguna tabla abierta en el área de trabajo seleccionada actualmente, se muestra el cuadro de diálogo Abrir, que permite elegir la tabla que se desea modificar.
Los cambios que puede efectuar en la estructura de una tabla incluyen agregar y eliminar campos, modificar el nombre, el tamaño y el tipo de datos de los campos, agregar, eliminar o modificar etiquetas de índice, y especificar el soporte de valores nulos en los campos.
También puede modificar la estructura de una tabla utilizando la interfaz. Para obtener más información, vea Modificar la estructura de la tabla.
Precaución Al cambiar campos de un tipo de datos a otro, el contenido del campo no siempre se transferirá limpiamente. Por ejemplo, si quiere convertir un campo de tipo Date a tipo Numeric, el contenido del campo no se transferirá.
Visual FoxPro hace automáticamente una copia de seguridad de la tabla actual antes de que usted cambie la estructura de la tabla. Cuando se han terminado las modificaciones, los datos de la copia de seguridad de la tabla se anexan a la estructura de registro recién modificada. Si la tabla tiene un campo memo, también se crea un archivo de seguridad de campos memo. La tabla de seguridad tiene la extensión .bak y el archivo de seguridad de los campos memo tiene la extensión .tbk.
Si acepta los cambios de estructura e interrumpe el proceso de copia de datos, el archivo nuevo no contendrá todos los registros de la tabla original.
Recuerde que Visual FoxPro crea una copia .bak del archivo de tabla original y una copia .tbk del archivo de campos memo original, si la tabla tiene algún campo memo. Si tiene algún problema con MODIFY STRUCTURE, puede borrar el o los archivos nuevos y cambiar el nombre del archivo .bak y del archivo .tbk, si es que hay alguno, por sus extensiones originales (.dbf y .ftp).
Cuando modifique la estructura de una tabla que tenga un campo memo, el tamaño de bloque del archivo memo se ajustará según la configuración actual del tamaño de bloque. Puede especificar el tamaño de bloque del archivo memo con SET BLOCKSIZE.
MODIFY COMMAND (Comando)
Visual Studio .NET 2003
Personas que lo han encontrado útil: 2 de 2 - Valorar este tema
Abre una ventana de edición de texto y le permite modificar o crear un archivo de programa.
MODIFY COMMAND [FileName| ?] [NOEDIT] [NOMENU] [NOWAIT]
[RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME]
[SAVE]
Parámetros
FileName
Especifica el nombre del archivo para el programa que se va a abrir o crear. Si no especifica una extensión para un nuevo archivo de programa, Visual FoxPro asigna automáticamente la extensión .prg. MODIFY COMMAND admite una estructura de archivo que contenga los caracteres comodín asterisco (*) e interrogación (?). Se abrirá una ventana de edición de texto para cada programa cuyo nombre coincida con la estructura de archivos.
Si omite el nombre del archivo, aparecerá una ventana de edición de texto para un archivo que inicialmente se llama Prog1.prg. Cuando cierre la ventana de edición de texto podrá guardar el archivo con un nombre diferente.
?
Muestra el cuadro de diálogo Abrir. Elija uno de los programas existentes o escriba el nombre de un programa nuevo que desee crear.
NOEDIT
Especifica que el archivo de programa no podrá cambiarse, pero podrá visualizarse y copiarse al Portapapeles.
NOMENU
Elimina el título de menú Formato de la barra de menús del sistema de Visual FoxPro, lo que impide cambios de fuente, tamaño de fuente, espacio interlineal y sangrado.
NOWAIT
Continúa con la ejecución del programa después de que se abra la ventana de edición de texto. El programa no espera a que se cierre la ventana de edición, sino que continúa la ejecución en la línea 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 edición y la ejecución del programa se interrumpe hasta que se cierra la ventana.
NOWAIT sólo es efectivo desde dentro de un programa. No ejerce ningún efecto en MODIFY COMMAND cuando se ejecuta desde la ventana Comandos.
Se produce un NOWAIT implícito cuando abre más de una ventana de edición de texto con un solo comando MODIFY COMMAND. Por ejemplo:
MODIFY COMMAND *.PRG.
RANGE nStartCharacter, nEndCharacter
Especifica un rango de caracteres seleccionado cuando la ventana de edición de texto es abierta. Los caracteres se seleccionan comenzando en la posición especificada con nStartCharacter hasta el carácter que se encuentre en la posición nEndCharacter. Si nStartCharacter es igual a nEndCharacter, no se seleccionará ningún carácter y el cursor se situará en la posición especificada con nStartCharacter.
WINDOW WindowName1
Especifica una ventana de la cual asumirá las características la ventana de edición de texto. Por ejemplo, si la ventana está definida con la cláusula FLOAT de DEFINE WINDOW, la ventana de edición de texto podrá moverse. No es necesario que la ventana esté activa o sea visible, pero debe estar definida.
IN [WINDOW] WindowName2
Especifica una ventana primaria dentro de la cual se abrirá una ventana de edición de texto. La ventana de edición de texto no asumirá las características de la ventana primaria y no puede moverse fuera de la ventana primaria. Si se mueve la ventana primaria, la ventana de edición de texto se moverá con ella.
Para tener acceso a la ventana de edición de texto, la ventana primaria debe estar definida anteriormente con DEFINE WINDOW y debe estar visible.
IN SCREEN
Abre explícitamente la ventana de edición en la ventana principal de Visual FoxPro, después de haberla situado en una ventana primaria. Se colocará una ventana de edición en una ventana primaria incluyendo la cláusula IN WINDOW.
AS nCodePage
Convierte automáticamente los caracteres acentuados de un programa o archivo de texto creado en otra plataforma de Visual FoxPro. La expresión numérica nCodePage especifica la página de códigos de la plataforma de Visual FoxPro en la que se creó el archivo de programa. El archivo se guarda con esa página de códigos hasta que elija Guardar como... del menú Archivo para guardar el archivo con una página de códigos distinta.
SAME
Evita que la ventana de edición de texto se ponga delante como ventana activa. Si la ventana de edición de texto está oculta, se mostrará pero no se convertirá en la ventana activa.
SAVE
Conserva la ventana de edición de texto abierta después de que otra ventana se active. Si omite SAVE, la ventana de edición de texto se cierra cuando otra ventana se activa. El hecho de incluir SAVE no tiene ningún efecto cuando se ejecuta desde la ventana Comandos.
Observaciones
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 extensión .BAK cuando seleccione la casilla de verificación "Hacer copia de seguridad" en la ficha Modificar del cuadro de diálogo Propiedades, que aparece al elegir Propiedades en el menú Edición.
Se utilizará el editor incorporado de Visual FoxPro a menos que especifique un editor externo con TEDIT en su archivo de configuración.
DELETE (Comando)
Visual Studio .NET 2003
Personas que lo han encontrado útil: 3 de 6 - Valorar este tema
Marca los registros que se van a eliminar.
DELETE [Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias] [NOOPTIMIZE]
Parámetros
Scope
Especifica un intervalo de registros que desea marcar para su eliminación. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumbery REST.
Para obtener más información acerca de las cláusulas de alcance, vea el tema Cláusulas de alcance.
Para obtener más información acerca de las cláusulas de alcance, vea el tema Introducción al lenguaje.
El alcance predeterminado para el comando DELETE es el registro actual (NEXT 1).
FOR lExpression1
Especifica una condición por la cual solamente se marcan para su eliminación los registros que satisfacen la condición lógica lExpression1.
Rushmore optimizará una consulta creada con DELETE ... FOR si lExpression1 es una expresión optimizable y la tabla está indizada por DELETED( ). Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Si desea obtener más información acerca de las expresiones optimizables con Rushmore, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos en Optimizar aplicaciones.
WHILE lExpression2
Especifica una condición por la cual los registros se marcan para su eliminación siempre y cuando lExpression2 dé como resultado verdadero (.T.).
IN nWorkArea
Especifica el área de trabajo de la tabla en la cual se marcan los registros para su eliminación.
IN cTableAlias
Especifica el alias de la tabla en la cual se marcan los registros para su eliminación.
Si omite nWorkArea y cTableAlias, los registros se marcarán para su eliminación en la tabla del área de trabajo seleccionada actualmente.
NOOPTIMIZE
Desactiva la optimización Rushmore de DELETE.
Observaciones
Los registros marcados para su eliminación no se eliminarán físicamente de la tabla hasta que se ejecute PACK. Los registros marcados para su eliminación pueden recuperarse (o quitar las marcas) con RECALL.
Ejemplo
El ejemplo siguiente abre la tabla customer de la base de datos testdata. Se utiliza DELETE para marcar para eliminación todos los registros en los que el campo country contenga USA. Se muestran todos los registros marcados para ser eliminados. Se utiliza RECALL ALL para quitar las marcas de todos los registros marcados para eliminar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
DELETE FOR country = 'USA' && Mark for deletion
CLEAR
LIST FIELDS company, country FOR DELETED( ) && List marked records
RECALL ALL && Unmark all records marked for deletion
REPORT (Comando)
Visual Studio .NET 2003
Personas que lo han encontrado útil: 1 de 3 - Valorar este tema
Muestra o imprime un informe bajo el control de un archivo de definición de informe creado con MODIFY REPORT o CREATE REPORT.
REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] [FOR lExpression1]
[WHILE lExpression2] [HEADING cHeadingText] [NOCONSOLE]
[NOOPTIMIZE] [PLAIN] [RANGE nStartPage [, nEndPage]]
[PREVIEW [[IN] WINDOW WindowName | IN SCREEN] [NOWAIT]]
[TO PRINTER [PROMPT] | TO FILE FileName2 [ASCII]] [NAME ObjectName]
[SUMMARY]
Parámetros
FileName1
Especifica el nombre del archivo de definición de informe que se va a imprimir. En esta versión de Visual FoxPro también se notifica este parámetro al cuadro de diálogo Cola de impresión.
?
Muestra el cuadro de diálogo Abrir, en el que puede elegir un archivo de informe.
ENVIRONMENT
Se incluye por compatibilidad con los 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 en el valor verdadero (.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 en el valor verdadero (.T.), que es también el valor predeterminado.
En el caso de informes convertidos de versiones anteriores de FoxPro, la inclusión de ENVIRONMENT abrirá y restaurará todas las tablas y las relaciones en el entorno de datos, incluso si AutoOpenTables está establecida en falso (.F.).
Al crear o modificar informes, puede guardar el entorno de datos actual de Visual FoxPro con el archivo de definición de informes. Esto coloca los registros adicionales en la tabla de definición de informe para todas las tablas abiertas y archivos de índice, para el orden de índice y para todas las relaciones entre las tablas.
Scope
Especifica un alcance de registros para incluir en el informe. Solamente se incluyen en el informe los registros comprendidos dentro del rango.
Las cláusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. Para obtener más información acerca de las cláusulas de alcance, vea los temas en pantalla Cláusulas de alcance e Introducción al lenguaje.
El alcance predeterminado de REPORT es ALL (todos los registros).
FOR lExpression1
Imprime solamente los datos incluidos en los registros en los que lExpression1 se evalúa como verdadero (.T.). La inclusión de FOR le permite filtrar los registros que no desea imprimir.
Rushmore optimizará REPORT FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Para obtener más información vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los datos se imprimen mientras la expresión lógica lExpression2 se evalúe como verdadero (.T.).
HEADING cHeadingText
Especifica texto para que se incluya un encabezado adicional en cada página del informe. Si se incluyen a la vez HEADING y PLAIN, la cláusula 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 optimización Rushmore de REPORT, incluya NOOPTIMIZE.
Si desea obtener más información, vea SET OPTIMIZE y Utilizar Rushmore para agilizar el acceso a los datos.
PLAIN
Especifica que el encabezado de página aparece solamente al principio del informe.
RANGE nStartPage [, nEndPage]
Especifica (excepto en la vista preliminar) el intervalo de páginas que se va a imprimir. nStartPage especifica la primera página que se va a imprimir;nEndPage especifica la última página que se va a imprimir. Si se omite nEndPage, el número de la última impresa será el predeterminado: 65.534.
PREVIEW [[IN] WINDOW WindowName | IN SCREEN]
Muestra el informe en el modo de Vista previa en lugar de enviarlo a la impresora. Para imprimir un informe, es necesario ejecutar REPORT con TO PRINTER.
Tenga en cuenta que las variables del sistema se pasan por alto cuando se incluye PREVIEW.
Para especificar la ventana para la vista previa del informe, incluya la cláusula opcional WINDOW o IN WINDOW. WindowName puede ser el nombre de una ventana creada con DEFINE WINDOW. Si incluye la cláusula WINDOW, en la vista previa se utilizarán las características (título, tamaño, etc.) de la ventana que especifique en WindowName. Si incluye la cláusula IN WINDOW, se obtiene una vista previa del informe en la ventana especificada enWindowName.
Puede incluir la cláusula opcional IN SCREEN para especificar que la ventana de vista previa del informe esté contenida en la ventana principal de Visual FoxPro y no se pueda mover fuera de ella.
Puede incluir la cláusula opcional NOWAIT de modo que en tiempo de ejecución Visual FoxPro no espere a que se cierre la ventana Vista previa antes de continuar con la ejecución del programa. En lugar de esto, Visual FoxPro continuará la ejecución del programa mientras esté abierta la ventana de vista previa de la página.
En una aplicación distribuida, asegúrese de que el menú Ver está disponible. Si se cierra la barra de herramientas de Vista previa, no podrá restaurarse a menos que esté disponible el menú Ver.
TO PRINTER [PROMPT]
Envía un informe a la impresora.
En Visual FoxPro, puede incluir la cláusula opcional PROMPT para mostrar un cuadro de diálogo de configuración de la impresora antes de que comience la impresión. Las opciones de configuración de la impresora que puede ajustar dependen del controlador de impresora que tenga instalado actualmente. Coloque PROMPT justo después de TO PRINTER.
TO FILE FileName2 [ASCII]
Especifica el archivo de texto al que se envía un informe. Se utiliza el controlador de impresora actual cuando se envía el informe al archivo de texto. El archivo creado cuando incluye TO FILE tiene la extensión predeterminada .txt.
Puede incluir la cláusula opcional ASCII para crear un archivo de texto ASCII a partir del archivo de definición de informe. Sin la cláusula ASCII,
EDIT (Comando)
Muestra campos para edición.
EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName]
[KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT | NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Parámetros
FIELDS FieldList
Especifica los campos que aparecen en la ventana Modificar. Los campos se muestran en el orden especificado en FieldList. En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.
Si omite FIELDS, se muestran todos los campos de la tabla en el orden en el que aparecen dentro de la estructura de la tabla.
La lista de campos puede especificar cualquier combinación de campos o campos calculados, incluyendo los pertenecientes a tablas abiertas en otras áreas de trabajo. La sintaxis de la lista de campos es la siguiente:
FieldName1
[:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]]
[:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]]
[:H = cHeadingText]
[:W = lExpression2]
[, FieldName2 [:R]...]
Campos Calculados
La lista de campos puede contener instrucciones para crear campos calculados. Un campo calculado contiene datos de sólo lectura creados con una expresión. Esta expresión puede tomar cualquier formato, pero siempre debe ser una expresión válida de Visual FoxPro.
La sintaxis de la instrucción utilizada para crear un campo calculado es:
CalculatedFieldName = eExpression
Este ejemplo crea un campo calculado denominado location:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
La lista de campos de la cláusula FIELDS incluye ocho opciones, que permiten la manipulación especial de los campos mostrados en la ventana Modificar.
:nColumnWidth
Especifica el tamaño de presentación de un campo en las columnas. El valor de :nColumnWidth no afecta al tamaño del campo de la tabla; sólo cambia la forma en que el campo aparece en la ventana Modificar.
:R
En el ejemplo siguiente se abre una ventana Modificar con los campos cust_id y company. El campo cust_id es de sólo lectura y no puede cambiarse.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS cust_id:R, company
:V = lExpression1
Especifica una opción de verificación que realiza la validación de datos a nivel de campo dentro de la ventana Modificar. Si lExpression1 se evalúa con el resultado verdadero (.T.) cuando mueve el cursor fuera del campo, los datos introducidos en el campo se consideran correctos y el cursor se mueve al campo siguiente.
Si lExpression1 se evalúa con el resultado falso (.F.), los datos introducidos se consideran incorrectos, el cursor permanece dentro del campo y se muestra un mensaje. Si lExpression1 se evalúa como 0, los datos introducidos se consideran incorrectos y el cursor permanece en el campo, pero no se muestra ningún mensaje de error.
De forma predeterminada, lExpression1 sólo se evalúa cuando se modifica el campo. Para forzar la comprobación, incluya la opción :F.
Puede presentar su propio mensaje de error incluyendo la opción :E.
La opción de verificación no se ejecuta para los campos memo.
:F
Especifica una opción de validación obligada que determina si la expresión de la opción de verificación(lExpression1) se debe evaluar al mover el cursor fuera del campo o cuando se activa otra ventana. Si no se incluye :F, lExpression1 sólo se evaluará si se hace algún cambio en el campo. Si :F está incluida, lExpression1 se evalúa aunque no se haya modificado el campo.
:E = cMessageText
Muestra un mensaje de error especificado con cMessageText en lugar del mensaje predeterminado del sistema.
Si la expresión de validación :V = lExpression1 se evalúa con el resultado verdadero (.T.), el cursor sale del campo con normalidad. Si la expresión se evalúa con el resultado falso (.F.), el cursor permanece en el campo y aparece el mensaje de error.
Si la expresión de validación :V = lExpression1 se evalúa como 0, no se muestra ningún mensaje y el cursor permanece en el campo que se esté validando. Esto le permite mostrar sus propios mensajes de error en las rutinas de validación.
El mensaje de error solamente se muestra si SET NOTIFY está ON. Si SET BELL está establecido en ON, sonará un aviso acústico.
El ejemplo siguiente abre la tabla products y muestra los campos product_id y prod_name. Introduzca un valor superior a 100 en el campoproduct_id para realizar la validación de campo.
:V especifica el criterio de validación. :F fuerza que se ejecute la validación tanto si se cambian los datos como si no. :E reemplaza el mensaje de error del sistema de Visual FoxPro por un mensaje de error definido por el usuario.
En Visual FoxPro y en FoxPro para Windows, el mensaje de error se muestra en la barra de estado situada en la parte inferior de la ventana principal de Visual FoxPro.
Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
EDIT FIELDS in_stock :V = in_stock < 100 ;
:F ;
:E = 'The stock amount must be less than 100'
:P = cFormatCodes
Especifica una opción de imagen que le permite crear una plantilla de edición especificada con cFormatCodes que controle la visualización y salida de los datos para cada campo de una ventana Modificar.
Para obtener más información acerca del uso de códigos de edición de imagen, vea las propiedades Format e InputMask.
El ejemplo siguiente utiliza la opción de imagen para permitir únicamente datos numéricos con un determinado formato en el campo unit_price:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS unit_price :P = '99,999.99'
:B = eLowerBound, eUpperBound [:F]
Especifica los límites entre los que deben encontrarse los datos. Las expresiones de límite eLowerBound y eUpperBound deben coincidir con el tipo de datos del campo y no pueden ser nombres de funciones definidas por el usuario. Si los datos introducidos no están incluidos entre eLowerBound yeUpperBound, se muestra un mensaje del sistema indicando el intervalo de datos que se acepta.
De forma predeterminada, se comprueba que los datos escritos quedan dentro de los límites sólo si se hacen cambios en el contenido del campo. Para forzar la comprobación, incluya la opción de forzar validación (:F).
El siguiente ejemplo se asegura que el valor del campo in_stock esté entre 1 y 100. Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS in_stock :B = 1, 100 :F
:H = cHeadingText
Especifica una opción de encabezado (:H) que le permite sustituir los nombres predeterminados de los campos por sus propios encabezados, que se especifican con cHeadingText. De forma predeterminada, los nombres de campos se sitúan a la izquierda de los campos de la ventana Modificar.
El ejemplo siguiente proporciona encabezados definidos por el usuario para los campos mostrados.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
:W = lExpression2
Especifica una opción WHEN que le permite prohibir condicionalmente que el cursor se mueva a un campo basándose en el valor de la expresión lógica lExpression. (:W) evalúa lExpression. Si lExpression2 se evalúa con el resultado falso (.F.), no es posible mover el cursor al campo. Si lExpression2 se evalúa con el resultado verdadero (.T.), es posible mover el cursor al campo. En lExpression2 es posible utilizar funciones definidas por el usuario.
Si el campo actual está marcado como de sólo lectura, se prohíbe el movimiento del cursor a todos los campos. Esto ocurre sólo cuando todos los campos contienen una cláusula WHEN que da como resultado falso.
Scope
Especifica un intervalo de registros que se presentan en la ventana Modificar. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORDnRecordNumber y REST. Los comandos que incluyen Scope sólo actúan sobre la tabla del área de trabajo activa. El alcance predeterminado para EDIT es ALL, es decir todos los registros.
Para obtener más información, vea Scope (Cláusulas)
FOR lExpression1
Especifica que solamente se muestran en la ventana Modificar los registros que satisfacen la condición lógica lExpression1. Este argumento le permite filtrar los registros no deseados.
Rushmore optimiza una consulta EDIT FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Si desea obtener más información, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los registros se muestran en la ventana Modificar mientras la expresión lógica lExpression2 se evalúe con el resultado verdadero (.T.).
FONT cFontName [, nFontSize]
Especifica la fuente y el tamaño de fuente de la ventana Modificar. La expresión de caracteres cFontName es el nombre de la fuente y la expresión numérica nFontSize es el tamaño de la fuente. Por ejemplo, la siguiente cláusula especifica la fuente Courier de 16 puntos para los campos mostrados en la ventana Modificar:
FONT 'Courier',16
Si incluye la cláusula FONT, pero omite el tamaño de fuente nFontSize, se utilizará una fuente de 10 puntos en la ventana Modificar.
Si omite la cláusula FONT, se usará MS Sans Serif de 8 puntos. Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares.
STYLE cFontStyle
En Visual FoxPro y en FoxPro para Windows, especifica el estilo de fuente para la ventana Modificar. Si omite la cláusula STYLE, se utiliza el estilo de fuente Normal.
Si el estilo de fuente especificado no está disponible, se sustituye por otro de características similares.
Ejemplo
El ejemplo siguiente utiliza SET SKIP para crear una relación de uno a varios entre dos tablas. Hay un único registro de la tabla (customer) para cada factura creada. La tabla secundaria (orders) contiene múltiples registros para cada registro de la tabla primaria.
Una vez creada la relación, se abre una ventana Modificar mostrando registros de ambas tablas.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName]
[KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT | NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Parámetros
FIELDS FieldList
Especifica los campos que aparecen en la ventana Modificar. Los campos se muestran en el orden especificado en FieldList. En la lista de campos puede incluir campos de otras tablas relacionadas. Cuando incluya un campo de una tabla relacionada, incluya delante del nombre de campo su alias de tabla y un punto.
Si omite FIELDS, se muestran todos los campos de la tabla en el orden en el que aparecen dentro de la estructura de la tabla.
La lista de campos puede especificar cualquier combinación de campos o campos calculados, incluyendo los pertenecientes a tablas abiertas en otras áreas de trabajo. La sintaxis de la lista de campos es la siguiente:
FieldName1
[:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]]
[:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]]
[:H = cHeadingText]
[:W = lExpression2]
[, FieldName2 [:R]...]
Campos Calculados
La lista de campos puede contener instrucciones para crear campos calculados. Un campo calculado contiene datos de sólo lectura creados con una expresión. Esta expresión puede tomar cualquier formato, pero siempre debe ser una expresión válida de Visual FoxPro.
La sintaxis de la instrucción utilizada para crear un campo calculado es:
CalculatedFieldName = eExpression
Este ejemplo crea un campo calculado denominado location:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
La lista de campos de la cláusula FIELDS incluye ocho opciones, que permiten la manipulación especial de los campos mostrados en la ventana Modificar.
:nColumnWidth
Especifica el tamaño de presentación de un campo en las columnas. El valor de :nColumnWidth no afecta al tamaño del campo de la tabla; sólo cambia la forma en que el campo aparece en la ventana Modificar.
:R
En el ejemplo siguiente se abre una ventana Modificar con los campos cust_id y company. El campo cust_id es de sólo lectura y no puede cambiarse.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS cust_id:R, company
:V = lExpression1
Especifica una opción de verificación que realiza la validación de datos a nivel de campo dentro de la ventana Modificar. Si lExpression1 se evalúa con el resultado verdadero (.T.) cuando mueve el cursor fuera del campo, los datos introducidos en el campo se consideran correctos y el cursor se mueve al campo siguiente.
Si lExpression1 se evalúa con el resultado falso (.F.), los datos introducidos se consideran incorrectos, el cursor permanece dentro del campo y se muestra un mensaje. Si lExpression1 se evalúa como 0, los datos introducidos se consideran incorrectos y el cursor permanece en el campo, pero no se muestra ningún mensaje de error.
De forma predeterminada, lExpression1 sólo se evalúa cuando se modifica el campo. Para forzar la comprobación, incluya la opción :F.
Puede presentar su propio mensaje de error incluyendo la opción :E.
La opción de verificación no se ejecuta para los campos memo.
:F
Especifica una opción de validación obligada que determina si la expresión de la opción de verificación(lExpression1) se debe evaluar al mover el cursor fuera del campo o cuando se activa otra ventana. Si no se incluye :F, lExpression1 sólo se evaluará si se hace algún cambio en el campo. Si :F está incluida, lExpression1 se evalúa aunque no se haya modificado el campo.
:E = cMessageText
Muestra un mensaje de error especificado con cMessageText en lugar del mensaje predeterminado del sistema.
Si la expresión de validación :V = lExpression1 se evalúa con el resultado verdadero (.T.), el cursor sale del campo con normalidad. Si la expresión se evalúa con el resultado falso (.F.), el cursor permanece en el campo y aparece el mensaje de error.
Si la expresión de validación :V = lExpression1 se evalúa como 0, no se muestra ningún mensaje y el cursor permanece en el campo que se esté validando. Esto le permite mostrar sus propios mensajes de error en las rutinas de validación.
El mensaje de error solamente se muestra si SET NOTIFY está ON. Si SET BELL está establecido en ON, sonará un aviso acústico.
El ejemplo siguiente abre la tabla products y muestra los campos product_id y prod_name. Introduzca un valor superior a 100 en el campoproduct_id para realizar la validación de campo.
:V especifica el criterio de validación. :F fuerza que se ejecute la validación tanto si se cambian los datos como si no. :E reemplaza el mensaje de error del sistema de Visual FoxPro por un mensaje de error definido por el usuario.
En Visual FoxPro y en FoxPro para Windows, el mensaje de error se muestra en la barra de estado situada en la parte inferior de la ventana principal de Visual FoxPro.
Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
EDIT FIELDS in_stock :V = in_stock < 100 ;
:F ;
:E = 'The stock amount must be less than 100'
:P = cFormatCodes
Especifica una opción de imagen que le permite crear una plantilla de edición especificada con cFormatCodes que controle la visualización y salida de los datos para cada campo de una ventana Modificar.
Para obtener más información acerca del uso de códigos de edición de imagen, vea las propiedades Format e InputMask.
El ejemplo siguiente utiliza la opción de imagen para permitir únicamente datos numéricos con un determinado formato en el campo unit_price:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS unit_price :P = '99,999.99'
:B = eLowerBound, eUpperBound [:F]
Especifica los límites entre los que deben encontrarse los datos. Las expresiones de límite eLowerBound y eUpperBound deben coincidir con el tipo de datos del campo y no pueden ser nombres de funciones definidas por el usuario. Si los datos introducidos no están incluidos entre eLowerBound yeUpperBound, se muestra un mensaje del sistema indicando el intervalo de datos que se acepta.
De forma predeterminada, se comprueba que los datos escritos quedan dentro de los límites sólo si se hacen cambios en el contenido del campo. Para forzar la comprobación, incluya la opción de forzar validación (:F).
El siguiente ejemplo se asegura que el valor del campo in_stock esté entre 1 y 100. Presione ESC para cerrar la ventana Modificar.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS in_stock :B = 1, 100 :F
:H = cHeadingText
Especifica una opción de encabezado (:H) que le permite sustituir los nombres predeterminados de los campos por sus propios encabezados, que se especifican con cHeadingText. De forma predeterminada, los nombres de campos se sitúan a la izquierda de los campos de la ventana Modificar.
El ejemplo siguiente proporciona encabezados definidos por el usuario para los campos mostrados.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
:W = lExpression2
Especifica una opción WHEN que le permite prohibir condicionalmente que el cursor se mueva a un campo basándose en el valor de la expresión lógica lExpression. (:W) evalúa lExpression. Si lExpression2 se evalúa con el resultado falso (.F.), no es posible mover el cursor al campo. Si lExpression2 se evalúa con el resultado verdadero (.T.), es posible mover el cursor al campo. En lExpression2 es posible utilizar funciones definidas por el usuario.
Si el campo actual está marcado como de sólo lectura, se prohíbe el movimiento del cursor a todos los campos. Esto ocurre sólo cuando todos los campos contienen una cláusula WHEN que da como resultado falso.
Scope
Especifica un intervalo de registros que se presentan en la ventana Modificar. Las cláusulas de alcance son: ALL, NEXT nRecords, RECORDnRecordNumber y REST. Los comandos que incluyen Scope sólo actúan sobre la tabla del área de trabajo activa. El alcance predeterminado para EDIT es ALL, es decir todos los registros.
Para obtener más información, vea Scope (Cláusulas)
FOR lExpression1
Especifica que solamente se muestran en la ventana Modificar los registros que satisfacen la condición lógica lExpression1. Este argumento le permite filtrar los registros no deseados.
Rushmore optimiza una consulta EDIT FOR si lExpression1 es una expresión optimizable. Para obtener el máximo rendimiento, utilice una expresión optimizable en la cláusula FOR.
Si desea obtener más información, vea SET OPTIMIZE y Usar Rushmore para agilizar el acceso a los datos.
WHILE lExpression2
Especifica una condición por la cual los registros se muestran en la ventana Modificar mientras la expresión lógica lExpression2 se evalúe con el resultado verdadero (.T.).
FONT cFontName [, nFontSize]
Especifica la fuente y el tamaño de fuente de la ventana Modificar. La expresión de caracteres cFontName es el nombre de la fuente y la expresión numérica nFontSize es el tamaño de la fuente. Por ejemplo, la siguiente cláusula especifica la fuente Courier de 16 puntos para los campos mostrados en la ventana Modificar:
FONT 'Courier',16
Si incluye la cláusula FONT, pero omite el tamaño de fuente nFontSize, se utilizará una fuente de 10 puntos en la ventana Modificar.
Si omite la cláusula FONT, se usará MS Sans Serif de 8 puntos. Si la fuente especificada no está disponible, se sustituirá por una fuente de características similares.
STYLE cFontStyle
En Visual FoxPro y en FoxPro para Windows, especifica el estilo de fuente para la ventana Modificar. Si omite la cláusula STYLE, se utiliza el estilo de fuente Normal.
Si el estilo de fuente especificado no está disponible, se sustituye por otro de características similares.
Ejemplo
El ejemplo siguiente utiliza SET SKIP para crear una relación de uno a varios entre dos tablas. Hay un único registro de la tabla (customer) para cada factura creada. La tabla secundaria (orders) contiene múltiples registros para cada registro de la tabla primaria.
Una vez creada la relación, se abre una ventana Modificar mostrando registros de ambas tablas.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
PROGRAMAS DE MICROSOFT VISUAL FOX PRO
aplicacion 1
en este primer ejercicio vamos a escribir un programa que lea 3 numeros enteros y determine el numero mayor, el numero central y el numero menor.debemos asumir que los tre numeros son siempre distintos .close all
clear
?"EVELIN ZEPEDA RAMOS "
input "introduzca el valor de A?" to nA
input "introduzca el valor de B?" to nB
input "introduzca el valor de C?" to nC
If nA > nB then
nMay = nA
nMen = nB
Else
nMay = nB
nMen = nA
EndIf
If nC > nMay Then
nCen = nMay
nMay = nC
Else
If nC > nMen Then
nCen =nC
Else
nCen =nMen
nMen =nC
EndIf
? "Mayor =" + Str(nMay)
? "Central =" + Str (nCen)
? "Menor =" + Str (nMen)
un restaurante ofrece un descuento del 10% para consumo entre $30.00 y 50.00., un descuento del 20% para consumo mayores a 50 .00 para todos los demás casos no se aplica ningún descuento .
Close All
Clear
?"evelin zepeda ramos "
Do While .T.
Input "consumo:" To nConsumo
If Type ("nConsumo") = "N"
Exit
EndIf
EndDo
Do Case
Case nConsumo >=30 And nConsumo <= 50
nImporte = nConsumo *0.9
Case nConsumo > 50
nImporte = nCONSUMO *0.8
otherwise
nImporte = nConsumo
EndCase
? "Importe a pagar:" + Str(nImporte)
aplicacion 3
El ejercicio consinte en escribir un programa que les ¨n¨ enteros y calcule la suma total, la media aritmetica ,el maximo y el minimo de los datos.para el desarrollo de la presente aplicasion, abrir una nueva ventana de edicion e ingresar el siguiente codigo.
close All
Clear
?" EVELIN ZEPEDA RAMOS "
input "Ingrese cantidad de numeros ?" To nN
Declare avector (nN)
for nI= 1 TO nN
input "Numero ["+ str (nI)+"]?" to avector(nI)
Next
nMax=avector [1]
nMin=avector [1]
nSuma = 0
For nI=1 to nN
nSuma=nSuma + avector [nI]
If avector[nI]>nMax Then
nMax =avector [nI]
EndIf
iF avector [nI]<nMin Then
nMin =avector [nI]
EndIf
Next
nMedia= nSuma /nN
?"Suma =" +Str(nSuma)
?"Media="+Str (nMedia,10,2)
?"Maximo ="+Str(nMax)
?"Minimo="+Str(nMin)
aplicacion 4
close all
clear
?" evelin zepeda ramos "
accept "ingrese una cadena?" to cCadena
?"Cadena invertida="+ CadInv(cCadena)
function CadInv
parameters cCadena
nN=Len(Alltrim(cCadena))
declare cTemporal(nN)
For nI=1 To nN
cTemporal(nI) = SubStr (cCadena,nI,1)
Next
cInvertida=""
for nJ=nN To 1 Step -1
cInvertida=cInvertida+ cTemporal (nJ)
Next J
Return cInvertida
Aplicación 3
El ejercicio consinte en escribir un programa que les ¨n¨ enteros y calcule la suma total, la media aritmetica ,el maximo y el minimo de los datos.para el desarrollo de la presente aplicasion, abrir una nueva ventana de edicion e ingresar el siguiente codigo.
close All
Clear
?" KATIA MUNGUIA JUAREZ "
input "Ingrese cantidad de numeros ?" To nN
Declare avector (nN)
for nI= 1 TO nN
input "Numero ["+ str (nI)+"]?" to avector(nI)
Next
nMax=avector [1]
nMin=avector [1]
nSuma = 0
For nI=1 to nN
nSuma=nSuma + avector [nI]
If avector[nI]>nMax Then
nMax =avector [nI]
EndIf
iF avector [nI]<nMin Then
nMin =avector [nI]
EndIf
Next
nMedia= nSuma /nN
?"Suma =" +Str(nSuma)
?"Media="+Str (nMedia,10,2)
?"Maximo ="+Str(nMax)
?"Minimo="+Str(nMin
Aplicación 4
A continuacion vamos a escribir una funcion qu reciba como argumento de entrada una cadena de caracteres y la devuelvan en forma inversa, por ejemplo si se ingresa la cadena corazon debera retornar nozaroc.
close all
clear
?" KATIA MUNGUIA JUAREZ "
accept "ingrese una cadena?" to cCadena
?"Cadena invertida="+ CadInv(cCadena)
function CadInv
parameters cCadena
nN=Len(Alltrim(cCadena))
declare cTemporal(nN)
For nI=1 To nN
cTemporal(nI) = SubStr (cCadena,nI,1)
Next
cInvertida=""
for nJ=nN To 1 Step -1
cInvertida=cInvertida+ cTemporal (nJ)
Next J
Return cInvertida
Close All
Clear
?"evelin zepeda ramos "
Do While .T.
Input "consumo:" To nConsumo
If Type ("nConsumo") = "N"
Exit
EndIf
EndDo
Do Case
Case nConsumo >=30 And nConsumo <= 50
nImporte = nConsumo *0.9
Case nConsumo > 50
nImporte = nCONSUMO *0.8
otherwise
nImporte = nConsumo
EndCase
? "Importe a pagar:" + Str(nImporte)
aplicacion 3
El ejercicio consinte en escribir un programa que les ¨n¨ enteros y calcule la suma total, la media aritmetica ,el maximo y el minimo de los datos.para el desarrollo de la presente aplicasion, abrir una nueva ventana de edicion e ingresar el siguiente codigo.
El ejercicio consinte en escribir un programa que les ¨n¨ enteros y calcule la suma total, la media aritmetica ,el maximo y el minimo de los datos.para el desarrollo de la presente aplicasion, abrir una nueva ventana de edicion e ingresar el siguiente codigo.
close All
Clear
?" EVELIN ZEPEDA RAMOS "
input "Ingrese cantidad de numeros ?" To nN
Declare avector (nN)
for nI= 1 TO nN
input "Numero ["+ str (nI)+"]?" to avector(nI)
Next
nMax=avector [1]
nMin=avector [1]
nSuma = 0
For nI=1 to nN
nSuma=nSuma + avector [nI]
If avector[nI]>nMax Then
nMax =avector [nI]
EndIf
iF avector [nI]<nMin Then
nMin =avector [nI]
EndIf
Next
nMedia= nSuma /nN
?"Suma =" +Str(nSuma)
?"Media="+Str (nMedia,10,2)
?"Maximo ="+Str(nMax)
?"Minimo="+Str(nMin)
aplicacion 4
close all
clear
?" evelin zepeda ramos "
accept "ingrese una cadena?" to cCadena
?"Cadena invertida="+ CadInv(cCadena)
function CadInv
parameters cCadena
nN=Len(Alltrim(cCadena))
declare cTemporal(nN)
For nI=1 To nN
cTemporal(nI) = SubStr (cCadena,nI,1)
Next
cInvertida=""
for nJ=nN To 1 Step -1
cInvertida=cInvertida+ cTemporal (nJ)
Next J
Return cInvertida
Aplicación 3
El ejercicio consinte en escribir un programa que les ¨n¨ enteros y calcule la suma total, la media aritmetica ,el maximo y el minimo de los datos.para el desarrollo de la presente aplicasion, abrir una nueva ventana de edicion e ingresar el siguiente codigo.
close All
Clear
?" KATIA MUNGUIA JUAREZ "
input "Ingrese cantidad de numeros ?" To nN
Declare avector (nN)
for nI= 1 TO nN
input "Numero ["+ str (nI)+"]?" to avector(nI)
Next
nMax=avector [1]
nMin=avector [1]
nSuma = 0
For nI=1 to nN
nSuma=nSuma + avector [nI]
If avector[nI]>nMax Then
nMax =avector [nI]
EndIf
iF avector [nI]<nMin Then
nMin =avector [nI]
EndIf
Next
nMedia= nSuma /nN
?"Suma =" +Str(nSuma)
?"Media="+Str (nMedia,10,2)
?"Maximo ="+Str(nMax)
?"Minimo="+Str(nMin
close All
Clear
?" KATIA MUNGUIA JUAREZ "
input "Ingrese cantidad de numeros ?" To nN
Declare avector (nN)
for nI= 1 TO nN
input "Numero ["+ str (nI)+"]?" to avector(nI)
Next
nMax=avector [1]
nMin=avector [1]
nSuma = 0
For nI=1 to nN
nSuma=nSuma + avector [nI]
If avector[nI]>nMax Then
nMax =avector [nI]
EndIf
iF avector [nI]<nMin Then
nMin =avector [nI]
EndIf
Next
nMedia= nSuma /nN
?"Suma =" +Str(nSuma)
?"Media="+Str (nMedia,10,2)
?"Maximo ="+Str(nMax)
?"Minimo="+Str(nMin
Aplicación 4
A continuacion vamos a escribir una funcion qu reciba como argumento de entrada una cadena de caracteres y la devuelvan en forma inversa, por ejemplo si se ingresa la cadena corazon debera retornar nozaroc.
A continuacion vamos a escribir una funcion qu reciba como argumento de entrada una cadena de caracteres y la devuelvan en forma inversa, por ejemplo si se ingresa la cadena corazon debera retornar nozaroc.
close all
clear
?" KATIA MUNGUIA JUAREZ "
accept "ingrese una cadena?" to cCadena
?"Cadena invertida="+ CadInv(cCadena)
function CadInv
parameters cCadena
nN=Len(Alltrim(cCadena))
declare cTemporal(nN)
For nI=1 To nN
cTemporal(nI) = SubStr (cCadena,nI,1)
Next
cInvertida=""
for nJ=nN To 1 Step -1
cInvertida=cInvertida+ cTemporal (nJ)
Next J
Return cInvertida
No hay comentarios:
Publicar un comentario