Problema con TXBRowse y Array

Problema con TXBRowse y Array

Postby jcaro » Thu Sep 20, 2007 8:42 pm

Hola Foro:

Tengo un problema grave y no se como solucionarlo.

Estoy usando txbrowse con array, y utilizo la instruccion


Code: Select all  Expand view  RUN
oBrw:SetArray( aDatos, .T. )


Para asignar el array. Hasta aqui todo bien, el problema es que siempre al entrar ordena por la primera columna.


Como lo puedo hacer para que ordene por otra columna distinta a la primera , pero desde codigo.


Si presiono los encabezados, ordena bien, pero necesito que se ordene por una columna, sin tener que presionar el encabezado.

Alguien sabe como hacerlo ?? Alguna ayudita porfis !!

Saludos
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Postby Biel EA6DD » Fri Sep 21, 2007 7:41 am

En principio parece que no se puede hacer via código. La funcion que se encarga de ordenar el array, es una funcion statica interna a la clase, con lo que no puedes llamarla desde fuera.
Yo veo dos posibles soluciones, una crear un metodo para poder ordenar, y otra añadir un parametro a setarray para poder especificar por que columna ordenar.

Aunque ambas dos no son compicadas de implementar, la segunda se trataria de modificar solo dos lineas del metodo SetArray.
Code: Select all  Expand view  RUN
METHOD SetArray( aData, lAutoOrder, nColOrder ) CLASS TXBrowse

Aqui añadimos el parametro nColOrder

Localiza la linea donde se ejecuta SortArray, y cambia el if anterior (if nFor == 1) por el siguiente.
Code: Select all  Expand view  RUN
if nFor == IF(nColOrder!=NIL,nColOrder,1)

Este codigo no lo he probado, pero creo que debe de funcionar para lo que tu quieres. Llamas al metodo SetArray igual que antes, mas un tercer parametro opcional donde le especificas la columna por la que quieres ordenar.
Code: Select all  Expand view  RUN
oBrw:SetArray( aDatos, .T. ,2)


PD Como siempre, si Antonio lo estima oportuno, y cree que puede ser util para mas gente, este codigo puede añadirse a la clase sin problema.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby jcaro » Fri Sep 21, 2007 1:04 pm

MUCHAS - MUCHAS GRACIAS Biel por tu ayuda, esta super claro lo que señalas, lo voy a probar al tiro.

Si hay problemas, les cuento.

Saludos,
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Postby jcaro » Fri Sep 21, 2007 4:07 pm

Biel .

Realice los cambios que me señalaste y funcion OK.

Gracias de nuevo,

Saludos,
Juan
==> Pasando a FWH16.04 + Harbour32 + BCC70 + PellesC
=> Abandonando FWH 13.7 + xHarbour + BCC582
http://www.mitaller.cl
jcaro
 
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Postby Antonio Linares » Fri Sep 21, 2007 4:35 pm

Biel,

Implementado, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 25 guests