Power Builder - Busqueda compleja

   
Vista:

Busqueda compleja

Publicado por Esteban (206 intervenciones) el 24/11/2014 04:21:10
Hola, mi inquietud es poder realizar una busqueda en una columna del datawindow pero que busque en cualquier parte del texto que se asemeje a lo que estoy digitando, como por decir:

Si escribo CPU

en la columna del datawindow (dw_catalogo) llamada "denominacion" hay un texto que tiene como texto (Equipos de computo CPU) y otros que tambien cuentan con un texto que dice CPU como por decir Procesador - cpu, etc... entonces quiero aplicar un filtro que muestre todos los textos que tengan en alguna parte de ellos el texto (CPU)

Cuando aplico este filtro solo filtra desde el primer caracter mas no desde cualquier parte del texto ocasionando a que no filtre nada

1
2
3
4
5
6
7
8
9
10
string ls_denom
ls_denom=sle_denominac.text
if ls_denom = "" then
	dw_catalogo.Setfilter("")
else
	dw_catalogo.setfilter("left(upper(denominacion), " + string(len(ls_denom)) + ") = '" + &
	Upper (ls_denom) + "'")
	cb_cerrar.Enabled=True
end if
dw_catalogo.Filter()

Como se podria modificar o agregar para que filtre por cualquier parte del texto.


Espero me puedan ayudar en esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Busqueda compleja

Publicado por Leopoldo Taylhardat (690 intervenciones) el 24/11/2014 15:17:55
Saludos...

usa el like tal como en la base de datos...

dw_catalogo.setfilter("upper(denominacion) " + "'%'+Upper (ls_denom) + "%'")
dw_catalogo.filter()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda compleja

Publicado por Leopoldo Taylhardat (690 intervenciones) el 24/11/2014 16:37:04
disculpa...


dw_catalogo.setfilter("upper(denominacion) " + "'%"+Upper (ls_denom) + "%'")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda compleja

Publicado por Esteban (206 intervenciones) el 24/11/2014 17:20:11
Hola Leopoldo, no consigo hacerlo ni con el Like, para esto he hecho lo siguiente:

Primero he puesto en el constructor de ese datawindow

This.SetTransObject(sqlca)
This.Retrieve()

Segundo he puesto el datawindow a modo Diseño y he ingresado a Datasourse alli he colocado un Retrieval Arguments con un argumento llamado "Conte" luego he retornado y en la parte inferior en Column he elegido la columna en donde deberia de buscar luego en Operador he puesto Like y en Value he puesto el argumento que he considerado (Conte)

Luego en el código del singlelineedit (sle_bus) he puesto :

string ls_denom
ls_denom=sle_denominac.text
if ls_denom = "" then
dw_catalogo.Setfilter("")
dw_catalogo.setfilter("upper(denominacion) " + "'%"+Upper (ls_denom) + "%'")
else
cb_cerrar.Enabled=True
end if
dw_catalogo.Filter()

Al buscar no busca nada, que podria ser...
Soy casi novato en esto, gracias por tu apoyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda compleja

Publicado por angel garcia (55 intervenciones) el 24/11/2014 21:24:17
Hola

Puedes usar la función de búsqueda Find, la ayuda está en la ayuda del powerbuilder , y el filtro que necesitas sería parecido a este:

long ll_fila_buscar
ll_fila_buscar= dw_catalogo.Find( "upper(denominacion) " + "'%"+Upper (ls_denom) + "%'", 1, dw_catalogo.RowCount())


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Busqueda compleja

Publicado por Esteban (206 intervenciones) el 24/11/2014 22:18:56
al final me resulto en el Modified del sle puse esto:

dw_catalogo.setFilter("Pos(Upper(denominacion), '" + Upper(sle_denominac.Text) + "') > 0")
dw_catalogo.Filter()
cb_cerrar.Enabled=True

ok ahora si lo filtra de cualquier parte, gracias Ángel por tu aporte

100 para ti.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar