Problemas con xBrowse/Array/ordenacion

Problemas con xBrowse/Array/ordenacion

Postby jll-fwh » Thu Oct 21, 2010 2:58 am

Hola a todos:

A ver si me podeis ayudar porque llevo 3 horas con el mismo problema y no logro dar con ello, supongo es porque ya estoy encecado y no veo nada, pero me hace cosas muy raras.

Comento:

Tengo un xBrowse mediante un array que lo ordeno por el 1 campo ( fecha ), al introducir nuevos detalles reordeno la tabla para que siempre este ordenada, hasta aqui bien, el tema es, cuando edito cualquiera de los 8 primeros registro que aparecen en el xBrowse( que son los que se ven en pantalla ), me edita los campos correctos, pero cuando bajo uno o mas registro ya sea con el teclado o con el raton, y selecciono un registro apartir del 8, me edita el registro anterior al que he seleccionado en el xBrowse.

Espero haberme explicado bien, alguna sujerencia porque me pasa esto? ( por cada alteracion del xBrowse siempre refresco el objeto xBrowse )

Otras Preguntas:

Supuestamente al declarar un xBrowse con array asi:

oGrid:SetArray( aDetalles, .T., 1, )

1.- No deberia de ordenar el array automaticamente?, si es asi a mi no me funciona, para tenerlo ordenado por fechas como quiero yo, por cada detalle nuevo tengo que reordenar con:

oGrid:aCols[1]:cOrder := "D" // orden descendente
oGrid:aCols[1]:cSortOrder := 1 // Por en campo 1 ( fecha )
oGrid:aCols[1]:SortArrayData() // Ordena el array

2.- Esto es correcto? se debe de hacer asi?

Muchas gracias de antemano por la ayuda.
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Problemas con xBrowse/Array/ordenacion

Postby jll-fwh » Thu Oct 21, 2010 6:09 am

Despues de descansar un par de horas y estar un poco despejado ya he encontrado el problema que me ha traido de cabeza 3 horas, diossssss que burro soy, y simpre son tonterias al final.

Para extraer y reemplazar la informacion del array estaba usando oGrid:nRowSel en vez de oGrid:nArrayAt, habia copia un trozo de codigo de otro programa y ni se me ha ocurrido mirar esto.

Bueno, solucionado mi chorrada, pero alguien sabria decirme como se puede ordenar xBrowse con array's mediante 2 columnas?

Ahora lo tengo asi: solo por fecha y me hace falta ordenarlo tambien por hora, es decir, Fecha + Hora

/* Cada vez que se introduce o se modifica un registro del xBrowse ( adetalles ) se */
/* reordena la el Array por "Fecha Toma" */
oGrid:aCols[1]:cOrder := "D"
oGrid:aCols[1]:cSortOrder := 1
oGrid:aCols[1]:SortArrayData()

Muchas gracias de antemano;
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Problemas con xBrowse/Array/ordenacion

Postby elmoiquique » Fri May 04, 2012 11:17 pm

Hola

Una consulta como pudiste solucionar el tema de orden por array, ya que me pasa lo mismo, solo se ordena cuando presiono el header,..

Gracias
Fivewin 11.07
elmoiquique
 
Posts: 297
Joined: Wed May 16, 2007 9:40 pm
Location: Iquique Chile

Re: Problemas con xBrowse/Array/ordenacion

Postby jll-fwh » Sat May 05, 2012 12:40 am

Hola elmoiquique:

Te copio el código del programa que ordenaba el array del xbrowse:

Code: Select all  Expand view
  /* Para evitar un error de ejecucion hay que comprobar que el Array sea >= 2        */
   If oGrid:nLen >= 2
       ASort( oGrid:aArrayData,,, { |x, y| if( x[1]==y[1], x[2]<y[2], x[1]<y[1] ) })
   End
 

Espero que te sirva;
Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Problemas con xBrowse/Array/ordenacion

Postby elmoiquique » Sun May 06, 2012 7:09 pm

Gracias JLL

Me sirvio tu ejemplo y lo solucione de esta forma y funciono a la perfeccion

if olbx:nlen>=2
Asort( acFirmar2,,, { |x, y| x[1] < y[1] })
endif

Gracias Nuevamente
Fivewin 11.07
elmoiquique
 
Posts: 297
Joined: Wed May 16, 2007 9:40 pm
Location: Iquique Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 35 guests