# Ordenación de listas

Son las siguientes operaciones las que implican ordenación:

* Pulsar sobre la cabecera de una rejilla para ordenar por un campo.
* Usar el comando de instrucción de proceso [ordenar lista](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/de-aplicacion-y-datos/proceso/base-de-datos/listas#ordenar-lista).
* Agrupar en un [informe](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/informe).
* Ordenar en los [orígenes de un informe personalizable](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/informe-personalizable/disenando-un-informe-personalizable-basico#definiendo-el-origen-de-datos).

Con el fin de optimizar la ordenación, además de realizarse en 3º plano (excepto si ordenamos por los tipos de campo siguientes: fórmula, hermano contiguo, puntero indirecto real y virtual, singular de plural por índice y por posición y tabla de extensión), el sistema realiza una indexación previa que permite una ordenación más rápida.&#x20;

En el caso de los campos alfabéticos, a la hora de ordenar se hace una pre-indexación que tiene en cuenta el siguiente número de caracteres en función del tipo de campo:

* Alfa256: hasta 48 caracteres.
* AlfaLatin1: hasta 48 caracteres.
* Alfa128: hasta 24 caracteres.
* Alfa64: hasta 24 caracteres.
* Alfa40: hasta 24 caracteres.
* Utf16: hasta 24 caracterres
* Fórmula alfabética: hasta 32 caracteres.

En el resto, tiene en cuenta la longitud real del tipo de campo:

* Numerico: longitud del campo.
* Fecha: longitud del tipo.
* Hora: longitud del tipo.
* Tiempo: longitud del tipo.
* Booleano: longitud del tipo.&#x20;
* Fórmula fecha: tamaño del tipo.
* Fórmula tiempo: tamaño del tipo.

En el caso de los [campos objeto](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/campo#objeto) (texto, texto enriquecido), no se ordenan alfabéticamente. El motivo que un campo objeto no se guarda en la tabla, sino que se guarda en un fichero a parte llamado **contenedor**. En el campo de la tabla lo que se guarda es una etiqueta que resuelve la ubicación del objeto en el contenedor (ejemplo: TXT0002). Por lo tanto, cuando ordenamos por la columna de un campo de tipo objeto texto lo que hará será ordenar por el contenido del campo, es decir, por esa etiqueta, no por el texto contenido en él.
