COMO ORDENAR UNA TABLA ALFABETICAMENTE EN TIEMPO DE EJECUCION

1,810 views
Skip to first unread message

pepe nievas

unread,
Jan 5, 2012, 6:34:13 PM1/5/12
to Comunidad de Visual Foxpro en Español
Hola, Buenas Tardes Foreros de VFP.
Les comento...
Tengo el siguiente codigo...
-----------------------------------
GATHER MEMVAR
FLUSH
THISFORM.Refresh
------------------------------------

Lo uso para agregar un registro a la tabla con mis doce textbox
vinculados con la propiedad controlsource a cada campo de mi tabla
"individuos.dbf".

Lo que yo quiero hacer es que al agregar el registro nuevo lo guarde
alfabeticamente.
El primer campo de mi tabla se llama "nat", que significa Nombre y
Apellido del Titular.
Y desde este campo es que yo quiero ordenar alfabeticamente todos los
registros a cargar.

Espero que me hayan entendido.
Muchas Gracias de antemano.

Walter R. Ojeda Valiente

unread,
Jan 5, 2012, 6:47:43 PM1/5/12
to publice...@googlegroups.com
No tiene sentido guardar los registros en un orden específico pues los datos casi nunca llegan en orden.

Para buscar o listar los datos según un orden se usan los índices.

En tu caso podrías escribir en la ventana de comandos del VFP:

USE INDIVIDUOS
INDEX ON NAT TO INDICE1
BROWSE

Y siempre los verás ordenados según el campo NAT.

Saludos.

Walter.



> Date: Thu, 5 Jan 2012 15:34:13 -0800
> Subject: [vfp] COMO ORDENAR UNA TABLA ALFABETICAMENTE EN TIEMPO DE EJECUCION
> From: sky.j...@gmail.com
> To: publice...@googlegroups.com

pepe nievas

unread,
Jan 5, 2012, 10:30:20 PM1/5/12
to Comunidad de Visual Foxpro en Español
Gracias Walter, entonces mi codigo me queda...
GATHER MEMVAR
FLUSH
INDEX ON NAT TO INDICE1
THISFORM.REFRESH

cada vez que ocurre el evento click del boton agregar registro, se
agrega y luego se crea el archivo indice1.idx
pero la segunda vez que doy click me pregunta si deseo sobreescribir
el archivo indice.idx
debo eliminarlo luego de thisform.refresh no?
es la unica forma o se puede agregar al inicio del form y eliminar al
final de cierre en el boton salir?
la idea es que al usuario no le fastidie estar clickeando "SI" cada
vez que se lo pregunten.
gracias walter, saludos

Walter R. Ojeda Valiente

unread,
Jan 5, 2012, 10:34:20 PM1/5/12
to publice...@googlegroups.com
No, no es así.

En el momento de crear tu tabla ya debes crear también tus archivos de índices. A partir de ese momento siempre tu tabla estará ordenada por ese índice. Y puedes tener muchísimos archivos de índice distintos, para ordenar a tu tabla por varios criterios.

CREATE MiTabla
INDEX ON MiCampo TO MiArchivoIndice

pero si es un índice que vas a usar mucho, entonces mejor sería escribir:

INDEX ON MiCampo TO TAG MiTag

Saludos.

Walter.



> Date: Thu, 5 Jan 2012 19:30:20 -0800
> Subject: [vfp] Re: COMO ORDENAR UNA TABLA ALFABETICAMENTE EN TIEMPO DE EJECUCION
> From: sky.j...@gmail.com
> To: publice...@googlegroups.com
>

pepe nievas

unread,
Jan 7, 2012, 12:32:29 PM1/7/12
to Comunidad de Visual Foxpro en Español
ah claro si.
gracias walter, comprendi como es.
algo nuevo que aprendi en estos dos ultimos meses de vida...
Reply all
Reply to author
Forward
0 new messages