Como hacer filtros

Hola...
Trabajo con power builder, pero quisiera ponerle filtros como en excel por ejemplo. Cuando ingrese un nombre 'a' me reporte todos los nombres que comiencen con 'a';pero si sigo aumentándole 'l' me valla saliendo todos que comienzan con esas características, y así sucesivamente.
Ójala me haya entendido.

1 Respuesta

Respuesta
1
Para realizar esto debes crear un evento de usuario sobre un control Single Linea Edit (SLE). Por ejemplo:
1. Insertas un control Single Linea Edit llamado "sle_buscar" sobre tu ventana.
2. Sobre el control creas un nuevo evento de usuario llamado "ue_buscar".
3. En en la opcion [Event ID] de la lista eliges "pbm_enchange", es decir deberia quedar asi: [Event ID]=pbm_enchange.
4. En parte del script debes codificar lo necesario para llamar por que campo debes filtrar. Ejemplo: queremos filtrar los clientes por "Apellidos y Nombres", para ello nuestra ventana cliente debe tener un datawindow tipo grid que nos filtre todos los clientes existentes de la tabla cliente de nuestra base de datos, Entonces nuestro script del evento "ue_buscar" seria así:
//Definimos variables
string ls_buscar
integer li_buscar
if dw_cliente.rowcount( )<>0 then //Si el datawindow cliente contiene algun cliente
   dw_cliente.setfilter("") //filtramos todos los registros del datawindow cliente
   dw_cliente.filter()
   //Hacemos una comparación del campo "nombres_cliente" del datawindow con las letras introducidas en el sle_buscar.
   ls_buscar="nombres_cliente like '"+upper(sle_buscar.text)+"%'"
   //Buscamos los registros que coincidan con las letras introducidas en "sle_buscar"
   li_buscar=dw_cliente.find(ls_buscar,1,dw_cliente.rowcount())
   if li_buscar=0 then
      messagebox("Verifique","¡Registro no Existe!",Exclamation!)
      sle_buscar.setfocus( )
      return
  else
     dw_cliente.scrolltorow(li_buscar) //Mostramos los registros coincidentes
     dw_cliente.setfilter(ls_buscar) //Filtramos todos los registros que coinciden
     dw_cliente.filter()
     dw_cliente.setsort("Nombres_Cliente a") //Ordenamos de forma ascendente
     dw_cliente.sort( )
  end if
else //Si no contiene desplegamos el siguiente mensaje
    messagebox("Verifique","¡No Existen Registros!",Information!)
end if
/**********************************************/
Este ejemplo lo puedes adaptar a tu aplicación.
Califica y Finaliza la Aplicación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas