none
ordenación vista RRS feed

  • Pregunta

  • Buenas tardes,

    Quiero ordenar una lista en una vista. La ordenación que quiero hacer es que aparezca primero la fecha más antigua del año en curso. Es decir, si estamos en 2015 el orden sería:

    ¿Sería posible de alguna manera?


    ID  Fecha Orden

    1 20/14/2015

    2 2017

    3 1998

    4 (vacio)

    5 08/01/2015

    martes, 3 de marzo de 2015 15:10

Respuestas

  • Buenas Megaes.

    No se si es muy elegante, pero una forma de resolverlo sin programación sería:

    - Creas una columna calculada que asigne valores dependiendo de 4 casos:

    -- En caso de que el campo fecha esté vacio -> 0

    -- En caso de que el año del campo fecha coincida con el año actual -> valor asignado ascendente (por ejemplo restando el valor fecha a 31/12/añoActual y sumando valor 01/01/añoActual, para que esté por encima de las fechas de años anteriores.

    -- En caso de que el año de campo fecha sea menor que el año actual -> valor asignado ascendente (basado directamente en la fecha).

    -- En caso de que el año de campo fecha sea mayor que el año actual -> valor asignado negativo (por ejemplo restando a la fecha 31/12/añoActual el valor fecha).

    - Ordenas por la columna calculada.

    Esta solución tiene varios problemas (además de que no creo que sea muy elegante):

    - Al inicio de cada año tienes que actualizar todos los elementos de la lista (por lo menos los elementos del año anterior, el actual y los siguientes para que la columna calculada tenga el valor correcto.

    Una solución un poco menos complicada, sería que por programación crearas un workflow o un eventReceiver que se ejecutara cuando se inserta o se actualiza un item y se asignara esos valores en una columna creada, la cual utilizaras para ordenar la vista. 

    Espero no haberte liado mucho.

    Saludos.

    Manuel.


    • Editado ManuelGB miércoles, 4 de marzo de 2015 7:25
    • Propuesto como respuesta Moderador M jueves, 5 de marzo de 2015 21:30
    • Marcado como respuesta Moderador M martes, 10 de marzo de 2015 21:03
    miércoles, 4 de marzo de 2015 7:25

Todas las respuestas

  • Buenas Megaes.

    No se si es muy elegante, pero una forma de resolverlo sin programación sería:

    - Creas una columna calculada que asigne valores dependiendo de 4 casos:

    -- En caso de que el campo fecha esté vacio -> 0

    -- En caso de que el año del campo fecha coincida con el año actual -> valor asignado ascendente (por ejemplo restando el valor fecha a 31/12/añoActual y sumando valor 01/01/añoActual, para que esté por encima de las fechas de años anteriores.

    -- En caso de que el año de campo fecha sea menor que el año actual -> valor asignado ascendente (basado directamente en la fecha).

    -- En caso de que el año de campo fecha sea mayor que el año actual -> valor asignado negativo (por ejemplo restando a la fecha 31/12/añoActual el valor fecha).

    - Ordenas por la columna calculada.

    Esta solución tiene varios problemas (además de que no creo que sea muy elegante):

    - Al inicio de cada año tienes que actualizar todos los elementos de la lista (por lo menos los elementos del año anterior, el actual y los siguientes para que la columna calculada tenga el valor correcto.

    Una solución un poco menos complicada, sería que por programación crearas un workflow o un eventReceiver que se ejecutara cuando se inserta o se actualiza un item y se asignara esos valores en una columna creada, la cual utilizaras para ordenar la vista. 

    Espero no haberte liado mucho.

    Saludos.

    Manuel.


    • Editado ManuelGB miércoles, 4 de marzo de 2015 7:25
    • Propuesto como respuesta Moderador M jueves, 5 de marzo de 2015 21:30
    • Marcado como respuesta Moderador M martes, 10 de marzo de 2015 21:03
    miércoles, 4 de marzo de 2015 7:25
  • Muchas gracias Manuel, probaré con el WF!!!

    miércoles, 4 de marzo de 2015 9:04