Share via


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 campo product_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 y eUpperBound, 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, RECORD nRecordNumber 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.

  • 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 con cTitleText. 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

Vea también

BROWSE | Grid (Control) | SET SKIP | WTITLE( ) | COL( ) (Función) | ROW( ) (Función)