Power Builder - Busqueda interactiva???

 
Vista:

Busqueda interactiva???

Publicado por Julio (137 intervenciones) el 23/04/2005 04:41:17
Hola a todos los foristas, alguien sabe como hacer en PB una busqueda interactiva, algo asi les explico mi fumada que se me ocurrio viendo una busqueda que realiza el fox, es decir mientras voy digitando una letra van apareciendo las coincidencias pero si voy aumentando los digitos la busqueda se reduce a la suma de los digitos... no se si me explique bien, espero que si.

Si alguien tiene alguna idea o alguna funcion del power, por favor hacermela saber yo me encargo de averiguar el codigo y hacer las pruebas (Obviamente con base de datos).

Thanks
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

RE:Busqueda interactiva???

Publicado por Oscar (1178 intervenciones) el 23/04/2005 15:26:08
Para buscar un registro en un DW, digitando las primeras letras en un sle_1, puedes emplear el siguiente script (eso de la suma de los dígitos, no entendí).

1. En una ventana, insertas los siguientes controles:
- SingleLineEdit (sle_1)
- dw_1

2. En el sle_1, creas un nuevo evento de usuario:
- Event Name: mievento
- Event ID: pbm_keyup

Luego, el script en este nuevo evento es:

string ls_buscar_string
long ll_fila_encontrada

ls_buscar_string = 'Match(String(paterno), "^' + This.text + '")'

ll_fila_encontrada = dw_1.Find(ls_buscar_string, 1, dw_1.RowCount())

If ll_fila_encontrada > 0 Then
dw_1.ScrollToRow(ll_fila_encontrada)
dw_1.SelectRow(0, False)
dw_1.SelectRow(ll_fila_encontrada, True)
End If

This.SetFocus()
//--------------------------Fin--------------------------------

Nota: Si tienes muchísimos registros en tu DW, quizá este método no sea el más aconsejable.
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

RE:Busqueda interactiva???

Publicado por Eduardo.V (208 intervenciones) el 24/04/2005 00:32:13
Que Tal,
Si quieres hacerlo en un datawindow tienes que usar datawindowchilds, la funcion retrieve y el evento itemchanged del datawindow.

primero crea tu datawindow que vas a pegar como dddw en la columna del dw. no olvides colocarle por lo menos un retrieve argument y luego en el where del source utiliza el like algo asi como:
tabla.nombre_columna like '%'+:argumento+'%'
Lo pegas en la columna y en las propiedades del edit lo pones como allow editing y le quitas el autoretrieve.
en el evento itemchanged del datawindow pones algo asi

if dwo.name='nombre_columna' then
datawindowchild ldwc_columna
this.getchild('nombre_columna',ldwc_columna)
ldwc_columna.settransobject(sqlca)
ldwc_columna.retrieve(data)
end if
Listo.
Cada vez que escribas un digito en la columna se hara un retrieve en el dddw con los resultados que correspondan.
Observacion:
-Puedes mejorar este codigo declarando el datawindowchild como variable de instancia y obviar el settransobject en el evento.
-Personalmente no utilizo este tipo de busqueda en tablas que tengan gran cantidad de filas (digamos millones) porque exige mucha pc, aunque ahora con las pentium IV quien sabe.
Saludos desde Peru



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

RE:Busqueda interactiva???

Publicado por Julio (137 intervenciones) el 24/04/2005 15:26:31
Ok, thank's por la ayuda, voy a intentarlo con los dos ejemplos.
Con respecto a lo de la suma, bueno, especificamente es lo siguiente:
Escribo la letra 'C' en mi sle_busqueda.text y luego el siguiente es: 'C' mas 'A', es decir ahora la nueva busqueda sera con 'CA', luego digito 'M' y la siguiente busqueda sera 'CAM' y asi consecutivamente y en el DW debe darme los valores por ejemplo si escribi 'C' todos los que empiezan con 'C' luego aumento una 'A' y todos los que siguen con 'CA' luego digito 'M' y todos las coincidencias con 'CAM', esto lo vi en Fox por eso me dio curiosidad utilizar este tipo de busqueda.

Voy a intentarlo y si tengo exito voy a publicar el codigo.

Thank's!!!
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

RE:Busqueda interactiva???

Publicado por Jorge (900 intervenciones) el 25/04/2005 14:14:30
Hola,

Estoy usando retrieves con like y con dos argumentos ,
Pc AMD Athlon 2 GB 256 Ram Registros 45.000 los recupera al toque
PB9 ASA 8

dw_like_articulo.Retrieve('%'+ sle_articulo.text + '%','%' + sle_codigo.text + '%')

Suerte

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