Ordenar rejilla en un localizador


([N1] vlinares) #1

Buenas tardes…

Estoy trabajando con localizadores que lanzo desde la edición del campo (con el típico menú…) Pero la rejilla que obtengo de la búsqueda quisiera que me apareciera en un orden concreto. Es decir si en la búsqueda por trozos de nombre de cliente en la lista mostrada, donde aparece el nombre del cliente y la fecha de alta, me lo ordene por el contenido de la fecha alta de más nuevo a más antiguo.

Gracias por vuestra ayuda.


([N3] pacosatu) #2

Hola vLinares.

Creo que la Rejilla del objeto Localizador no se puede mostrar ordenada en los Índices por Trozos y Palabras. Tendrás que ordenarla manualmente haciendo click en la cabecera de la columna correspondiente a la Fecha o programando algún evento (Got Focus) de la Rejilla.

Ten en cuenta que los índices de Trozos y Palabras realmente no ordenan, solo nos dicen qué registros contienen el trozo o la palabra.

Para conseguir lo que quieres te propongo otra cosa. Tendrás que construir un Localizador personalizado.

  • Crea un objeto Búsqueda con 2 componentes y una Variable Local TROZO. Un componente es el índice por Trozos, el límite Inicial lo resuelves con el contenido de la Variable Local TROZO. El segundo componente es el índice Fecha de Alta, con mezcla Cruzar y Todo el Fichero. Este segundo componente es el que realmente ordena el resultado de la Búsqueda.
  • Al objeto Búsqueda le activas la propiedad Invertir Lista para que las Fechas salgan de mayor a menor.

Ya está, lanzas un Proceso que dispara el objeto Búsqueda, previamente alimentada la Variable Local TROZO y obtendrás una Lista ordenada por la Fecha de mayor a menor. Si lanzas la Búsqueda en 3º plano tendrás todo optimizado.

Saludos
Paco Satué


([N1] vlinares) #3

Buenas noches…
Joer! Paco.
Perdonar por el taco, pero no se me ocurre otra cosa, (además de probar lo que me propones). Voy muy liado, pero prometo probarlo y comento en el foro. Por si le sirva a alguien más.
Ya os cuento…