Ordenar Datagrid por fecha

Comienzo mi posteo en este gran sitio con una respuesta que realicé en la lista de correos de madeinflex.
Consideremos que tengo un un datagrid que recibe un ArayCollection como Dataprovider, el campo de fecha se llama FECHA y se encuentra en el formato “dd/mm/yyyy hh24:mi” por ejemplo ahora cuando escribo este correo es: “11/06/2008 09:24” , ahora si la fecha que tienes es sin horas, más simple aún.

La solución será utilizar una función llamada “sortFechas” sea capaz de comparar las fechas.

En la columna del datagrid coloca la funcion que realizará la comparación entre tipos de datos de fecha correctos, es decir “date”. Sin embargo como mi dataprovider tiene la fecha como “String”, debo transformarla en formato “Date” para así poder utilizar una función de comparación de la clase ObjectUtil llamada “dateCompare”.

Primero creamos la funcion que transformará la fecha en formato string a la fecha en formato date, la llamaremos “String2Date”. (No explicaré la función, pero no es nada difícil de entender, lo básico en cortar con split el string).

  • Primero creamos la funcion que transformará la fecha en formato string a la fecha en formato date, la llamaremos “String2Date”.
  • Segundo creamos la funcion que hará la comparación de fechas en formato date, llamada “sortFechas”
  • Indicamos a la columna del datagrid cómo ordenar la columna conla propiedad “sortCompareFunction”

En un ejemplo completo :

[ftf w=”400″ h=”600″]

import mx.utils.ObjectUtil; import mx.collections.ArrayCollection; [Bindable] private var ac:ArrayCollection = new ArrayCollection([ {“FECHA”: “01/01/2008 01:01”}, {“FECHA”: “09/02/2008 20:59”}, {“FECHA”: “05/01/2008 22:19”}, {“FECHA”: “05/07/2008 11:59”}, {“FECHA”: “12/07/2008 19:42”}, {“FECHA”: “12/09/2008 01:47”}, {“FECHA”: “05/11/2008 13:51”}, {“FECHA”: “05/11/2008 11:59”}, {“FECHA”: “05/11/2008 12:00”}, {“FECHA”: “05/11/2008 13:11”}, {“FECHA”: “05/11/2008 15:00”}, {“FECHA”: “05/11/2008 16:01”}, ]);
dataField=”FECHA”/>
dataField=”FECHA”
sortCompareFunction=”sortFechas”/>


[/ftf]
El código fuente está aquí ordenarfechasendatagrid.zip

Si tiene una fecha más simple como por ejemplo DD/MM/YYYY entonces es más fácil y sólo modifiquen la funcion “String2Date”

Espero que les sirva, saludos a todos.

ripoblet

Chileno, Ingeniero Civil Informático, actualmente estudiante de MTI (Magister en Tecnologías de Información). jefe de Proyectos Web y desde Abril 2007 conoce Adobe Flex. Actualmente Flex es la herramietna de trabajo para los proyectos nuevos.

Sitio Web:http://ripoblet.wordpress.com

3 Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acerca de Made In Flex

Made In Flex es una comunidad de desarrolladores de Apache Flex creada en 2006.

Apache Flex, anteriormente conocido como Adobe Flex, es un SDK (kit de desarrollo de software) para crear aplicaciones enriquecidas - multiplataforma basadas en Adobe Flash donado por Adobe a la fundación Apache in 2011 y promocionado a proyecto de primer nivel en Diciembre de 2012.

Actualmente estamos cambiando muchos aspectos del sitio web para ofrecer un sitio útil para toda la comunidad que tenga en cuenta las necesidades actuales.

Últimas Fotos

Instalador de Apache Flex

Entrar o Registrase