Compartir a través de


Establecer el orden de los registros en tiempo de ejecución

SET ORDER permite designar el archivo o etiqueta de índice que controla el orden de los registros. Una tabla puede tener abiertos simultáneamente varios archivos de índice. Sin embargo, para determinar el orden en que se muestran los registros de una tabla o se tiene acceso a ellos, hay que establecer como índice de control un archivo de un solo índice (.idx, archivo de control) o una etiqueta de un archivo de índice compuesto (.cdx, etiqueta de control). Algunos comandos, como SEEK, utilizan la etiqueta de índice de control para buscar registros. No es necesario usar SET ORDER para ejecutar consultas.

Establecer el orden de los registros de forma interactiva en un formulario

Puede utilizar SET ORDER en tiempo de ejecución para cambiar el orden de los registros en un formulario. Por ejemplo, puede ser conveniente que los usuarios de su aplicación puedan cambiar el orden de los registros de una cuadrícula haciendo clic en el encabezado de la columna que deseen ordenar.

Para ordenar los registros de una cuadrícula por columnas

  1. Cree un formulario con un control Grid.
  2. Establezca en la propiedad ColumnCount de la cuadrícula el número de campos que desee mostrar en ella.
  3. En el evento Click del encabezado de cada columna de la cuadrícula, inserte código para:
    • Establecer como orden de los registros una clave de índice basada en la columna.
    • Actualizar el formulario.

Por ejemplo, si crea un formulario basado en la tabla Customer de la base de datos Testdata con una cuadrícula que contenga las cuatro columnas, company, contact, postal code y phone, la cuadrícula aparecerá en primer lugar ordenada alfabéticamente, ya que los registros de esa tabla se introdujeron por ese orden.

A continuación puede permitir que el usuario ordene la cuadrícula por contact o postal_code si inserta el código siguiente en el evento Click de cada encabezado de columna:

Ejemplo de código de evento para ordenar los registros de una cuadrícula al hacer clic en el encabezado de las columnas

Código Comentarios
SET ORDER TO company
GO TOP
THISFORM.Refresh
En el código de evento Click del encabezado de Company, se vuelve a ordenar la cuadrícula por la clave de índice company y se actualiza el formulario para mostrar los registros ordenados por compañía.
SET ORDER TO contact
GO TOP
THISFORM.Refresh
En el código de evento Click del encabezado de Contact, se vuelve a ordenar la cuadrícula por la clave de índice contact y se actualiza el formulario para mostrar los registros ordenados por el nombre de contacto.
SET ORDER TO
postalcode
GO TOP
THISFORM.Refresh
En el código de evento Click del encabezado de Postal_Code, se vuelve a ordenar la cuadrícula por la clave de índice postalcode y se actualiza el formulario para mostrar los registros ordenados por código postal.
  Como la ordenación por números de teléfono no es adecuada para esta aplicación, se deja en blanco el código del evento Click del encabezado de Phone.

En este ejemplo, al mostrar un formulario por primera vez, la cuadrícula aparece ordenada alfabéticamente por empresas. Cuando el usuario hace clic en el encabezado de la columna Contact, Visual FoxPro muestra los registros en la cuadrícula ordenados alfabéticamente por el nombre del contacto.

Si el usuario hace clic en el encabezado de la columna Postal_code, la cuadrícula se vuelve a ordenar y aparece ordenada por código postal.

Como en esta aplicación de ejemplo no hay necesidad de ordenar los contactos por sus números de teléfono, no se inserta el código con SET ORDER en el evento Click del encabezado de la columna phone. Cuando el usuario hace clic en el encabezado de la columna Phone, la cuadrícula no cambia.

Vea también

Crear múltiples índices | Usar otros tipos de índices | Trabajar con registros | SET ORDER | Grid | ColumnCount | Click | Eliminar un índice | Crear un índice | Ordenar por múltiples campos | Crear índices para tablas