Page 1 of 1

Problema con TXBRowse y Array

Posted: Thu Sep 20, 2007 8:42 pm
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

Posted: Fri Sep 21, 2007 7:41 am
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.

Posted: Fri Sep 21, 2007 1:04 pm
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,

Posted: Fri Sep 21, 2007 4:07 pm
by jcaro
Biel .

Realice _ que me señalaste y funcion OK.

Gracias de nuevo,

Saludos,

Posted: Fri Sep 21, 2007 4:35 pm
by Antonio Linares
Biel,

Implementado, gracias! :-)