Filtrado general de un browse... (es posible con TSBROWSE)

Filtrado general de un browse... (es posible con TSBROWSE)

Postby Andrés González » Tue Mar 25, 2008 9:40 am

Es posible realizar un filtrado general de todos los campos de un browse que cumplan una condición. A modo de ejemplo lo que realiza el iTunes de Apple. Que tienes una condición que busca en todos los campos y solo te muestra aquellos registros donde cualquiera de sus campos cumple la condición.

Generalmente esto debe realizarse en los campos de texto buscando una parte parcial de alguno de los campos, supongo que de manera similar a como lo realiza el comando AT()

Que browse debo utilizar...
Existe algún ejemplo
Es posible con el browse del Sr. Mercado.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Marcelo Via Giglio » Tue Mar 25, 2008 12:20 pm

Hola,

se me ocurre que puedes hacer la busqueda y los regs. que cumplen l a condicion lo marcas a traves de un campo, y luego aplicas un filtro o un scope sobre el campo de marca y eso no dependera del browse que utilices.

solo una idea

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1069
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Postby Armando » Tue Mar 25, 2008 8:27 pm

Andrés:

Otra posibilidad es que te apoyes en conocer cuantos campos de tipo character tiene el registro y despues hacer un filtro de esos campos, por ejempo:

cFiltro $ CampoCharacter1 .OR. cFiltro $ CampoCharacter2 .OR. etc etc

Tambien es solo una idea

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3237
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Filtrado general de un browse... (es posible con TSBROWS

Postby mmercado » Wed Mar 26, 2008 3:42 pm

Hola Andrés:
Andrés González wrote:Es posible realizar un filtrado general de todos los campos de un browse que cumplan una condición. A modo de ejemplo lo que realiza el iTunes de Apple. Que tienes una condición que busca en todos los campos y solo te muestra aquellos registros donde cualquiera de sus campos cumple la condición.

Puedes probar esto, funcionará con cualquier tipo de campo:
Code: Select all  Expand view  RUN
   Set Filter To lEncuentra( cBusca )
     
Function lEncuentra( cBusca )
   
   Local cText := ""
   
   For nFld := 1 To FCount()
      cText += cValToChar( FieldGet( nFld ) )
   Next
   
Return cBusca $ cText

Andrés González wrote:Que browse debo utilizar...

Cualquiera.

Andrés González wrote:Es posible con el browse del Sr. Mercado

También, ya que los filtros son aplicables a cualquier browse. En el caso de TSBrowse, también podrías usarlo como argumento de búsqueda para encontrar datos en los registros mostrados en una base de datos no filtrada usando oBrw:ExpLocate( lEncuentra( cBusca ) )

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Andrés González » Wed Mar 26, 2008 9:06 pm

Gracias, Marcelo, Armando y sobre todo a D. Manuel. La verdad tengo entendido que el set filter provoca problemas de lentitud pero en mi caso tampoco es muy importante ya que la base de datos que pretendo utilizar es muy dinámica y no suele contener muchos registros. había pensado en una solución similar a la propuesta por Armando pero la idea del sr. Mecado es muy elegante.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca


Return to FiveWin para Harbour/xHarbour

Who is online

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