BROWSE (Comando)

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, vea SET 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, vea Programació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 mediante 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 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á cMessageText cuando 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 y eUpperBound 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.

Vea también

CHANGE | EDIT | Grid (Control) | SET SKIP | WTITLE( ) | Agregar registros