Page 1 of 1
Filtro y control browse
Posted: Fri Oct 01, 2021 7:39 pm
by mjaviergutierrez
Hola Colegas ! , espero que anden todos bien. Uds. saben que tengo que filtrar una tabla en un control browse , por un campo de descripción que contenga (con el operador $ ), hace dias que estoy renegando y no me dá bolilla, busque y no encontre un ejemplo claro del useo del control browse con un filtro. No uso nunca ese control, siempre uso el grid , pero no se porque en un proyecto use un browse hace un tiempo y ahora lo tengo que modificar, si alguien tiene a mano un ejemplo, se los agradecería. Muchas saludos !
Re: Filtro y control browse
Posted: Sat Oct 02, 2021 4:56 am
by andyglezl
Hola Javier, quizá esto...
dbUseArea( .T., "DBFNTX", "MAESTRO", "MAE", .T., .F. )
dbSetFilter( {|| 'Car' $ MAE->NOMBRE }, " 'Car' $ MAE->NOMBRE" )
dbGoTop()
@ 074,007 BROWSE BRW_MAE WIDTH 720 HEIGHT 300 WORKAREA "MAE"................
.
.
.
.
dbClearFilter()
Re: Filtro y control browse
Posted: Sat Oct 02, 2021 12:57 pm
by AUGE_OHR
hi,
SET FILTER can be take long Time when navigate in BROWSE ... depend on how it is (un)sort
when have a Index which work on same FIELD like FILTER than it is much faster
if use $ you can use OrdWildSeek() which need Index
Code: Select all
DO WHILE ORDWILDSEEK("*"+ cSearch +"*",.T.)
AADD( aFound, TEST->RECNO() } )
ENDDO
BROWSE()
Re: Filtro y control browse
Posted: Sat Oct 02, 2021 9:00 pm
by mjaviergutierrez
Gracias Andy, Jimmy !!! Solucionado, gracias. Saludos.
Re: Filtro y control browse
Posted: Sun Oct 03, 2021 5:01 pm
by franco
Hello,
I do this with temporary index. This works well on large tables.
Code: Select all
Private ixorder , etemp // AT START OF PROGRAM
* LATER IN PROGRAM
ixorder := indexord()
INDEX ON DESC TO TEMP FOR cSearch $ DESC
BROWSE()
SET ORDER TO IXORDER
**** AFTER CLOSE TABLE
etemp:= 'temp.ntx'
close (your table)
ERASE (etemp)