Problema con TXBRowse y Array

Post Reply
jcaro
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Problema con TXBRowse y Array

Post by jcaro »

Hola Foro:

Tengo un problema grave y no se como solucionarlo.

Estoy usando txbrowse con array, y utilizo la instruccion

Code: Select all

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
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

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

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

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

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/
jcaro
Posts: 270
Joined: Fri Nov 11, 2005 7:39 pm

Post by jcaro »

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

Post by jcaro »

Biel .

Realice _ 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Biel,

Implementado, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply