Xavi,
Ojo con esa estática que estás usando, ya que la compartiran todas las
instancias de TArrayBrowse.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"xAvi" <[email=x_@_com]x_@_com[/email]> escribió en el mensaje
news:470a499f$[email=
2@ozsrv2.ozlan.local...]
2@ozsrv2.ozlan.local...[/email]
> Xevi escribió:
>> Gracias a todos por vuestras respuestas.
>> Tomaré nota de vuestros consejos.
>> La verdad es que no he utilizado los MemDataSets todavía, y creo que será
>> hora ya de meterme en alguno para aprender su uso.
>>
>> Un Saludo,
>> Xevi.
>>
>
> Bueno, sniff, también podría haberte programado esto.-
>
> CLASS TArrayBrowse FROM XArrayBrowse
> METHOD Filtra( bFiltro )
> ENDCLASS
>
> // bFiltro : Code Block de Filtrado
> // Dependiente de SubArray de ArrayData
> // Ejemplo : { |m| m[1] >= "A" }
> // bFiltro == nil : Elimina Filtrado
> METHOD Filtra( bFiltro ) CLASS TArrayBrowse
> Local aM, aData := {}
> static saArrayOrg
>
> if( bFiltro == nil ) // Elimina Filtrado
> ::aArrayData := saArrayOrg
> else // Aplica Filtro
> for each aM in ::aArrayData
> if( Eval( bFiltro, aM ) )
> AAdd( aData, aM )
> endif
> next
> saArrayOrg := ::aArrayData
> ::aArrayData := aData // xharbour

> endif
> ::Refresh( TRUE )
> RETURN Nil
>
>
> Te irá mucho mejor, pero debo advertirte que explota particularidades de
> XHarbour que pueden variar en el futuro.
> Pruebalo, copia este código a tu aplicación y lo utilizas con.-
>
> ::oArrayBrowse1:Filtra( { |m| m[1] >= "A" } )
>
> para activar el filtro y .-
>
> ::oArrayBrowse1:Filtra()
>
> para desactivarlo y volver a los datos originales.
>
> Un saludo
> Xavi
> PD: Dios bendiga Open Source, porque otra cosa...