xBrowse -ordenar array de fechas - Solucionado

xBrowse -ordenar array de fechas - Solucionado

Postby rolando » Fri Jul 13, 2012 11:37 am

Buen día,

Estoy teniendo un problema con el orden de fechas en xBrowse.

Antes de hojear, armo un array conteniendo, entre otros datos, tres columnas de fechas. En todas las de fecha tengo problemas para ordenar cuando se presiona sobre la cabecera.

Mi código sintetizado es así:

Code: Select all  Expand view
            oBrw:aCols[18]:cHeader:= "FECHA IN"
            oBrw:aCols[18]:bStrData         := { || aArray[oBrw:nArrayAt,18] } //     oBrw12:nArrayAt, 1
            oBrw:aCols[18]:nHeadStrAlign    := AL_CENTER
            oBrw:aCols[18]:nDataStrAlign    := AL_LEFT
            oBrw:aCols[18]:nWidth           := 235
            oBrw:aCols[18]:cTooltip         :="Clickear una vez con el izquierdo para ordenar por FECHA INGRESO"
            oBrw:aCols[18]:nEditType        := EDIT_NONE


Destaco que probé cargando en el array, las fechas en formado caracteres y en formato fecha y siempre son los mismos resultados.

Por ejemplo, si tengo tres fechas 11/11/2010, 10/12/2009 y 15/10/2009, las ordena siempre por los dos primeros caracteres y queda así:
10/12/2009
11/11/2010
15/10/2009

La consulta es ¿como hago para ordenar dentro del xbrowse una columna de fecha de un array?

Por cualquier ayuda, Gracias.

Rolando :D
Last edited by rolando on Fri Jul 13, 2012 4:33 pm, edited 1 time in total.
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: xBrowse -ordenar array de fechas

Postby Marcelo Via Giglio » Fri Jul 13, 2012 1:32 pm

Hola,

lo interesante del xBrowse es que la visualización puede ser una y la información otra, entonces puedes almacenar las fechas en el array yyyy/mm/dd, de manera que se puedan ordenar correctamente y en el bloque de visualización aplicas una función de transformación al formato de fecha que deseas mostrar.

Creo que puede servir esto, tendrías que probar

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: xBrowse -ordenar array de fechas

Postby rolando » Fri Jul 13, 2012 2:54 pm

Marcelo,

Gracias por responder.

Lo solucioné. En parte el problema era mío porque armaba el array con dtoc(dFecha) y, de ese modo no ordena por fecha porque NO es una fecha sino una cadena de caracteres. Eso lo había notado previamente a realizar la consulta en el foro y lo había corregido pero la falla de ordenado seguía.

Revisando el código nuevamente, me percato que en el array pongo, además de las fechas, muchos datos que luego no son mostrados en el xbrowse, estos datos están antes que las fechas y, pese a que hago un hide() a esas columnas, si bién no se muestran, parece que a la hora de ordenar, en realidad no ordenaba por la columna de la fecha en la que presionaba sobre su header, sino que lo hacía por la columna "real" del array que estaba ocultada con hide() en xbrowse.

No sé si será una cuestión del xBrowse o srá algún otro bug en mi programa pero lo solucioné definitivamente armando el array con los datos a mostrar en el orden que se mostrarán y luego, al final los datos que no se mostrarán. Ej:

Antes:

Code: Select all  Expand view
aHojear:={cNombre,cNO_SE_MUESTRA,dFecha1}


Ahora:

Code: Select all  Expand view
aHojear:={cNombre,dFecha1,cNO_SE_MUESTRA}


Así funciona ok.

Saludos.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Otto and 65 guests