Búsqueda incremental


([N3] pacosatu) #1

Hola.

Seguramente ya se ha tratado este tema, pero no encuentro nada al respecto.

El objeto Localizador muestra una Rejilla con los registros de la tabla asociada. Con los Índices alfabéticos y de ID realiza una búsqueda incremental de tal forma que va situando el puntero de la Rejilla en la primera fila que cumple con lo tecleado o en la fila inmediatamente siguiente si no se cumple.

No soy capaz de simular este comportamiento con comandos de Velneo.
¿Cómo lo implementáis? ¿es posible?

Gracias y saludos
Paco Satué


([N1] cristianvg2003) #2

Paco lo más parecido que he hecho es este “buscado” de acciones

https://twitter.com/cristiancvg/status/395633339329044481

pero lo hice solo con cestas porque sabia que los registros eran pocos,

a algo asi te refieres ?


([N1] aztecmexico) #3

No sé si se pueda, pero no funcionaría algo así como que en el control de texto donde vas escribiendo con señal tecla pulsada fuera disparando la búsqeda?


([N1] aztecmexico) #4

Te comento que si me funciona, bueno, salvo que no funciona con los primeros tres caractéres (por el tema de 3 mínimo para trozos), pero a partir del cuarto tiene el mismo comportamiento.

Para probar tomé las búsquedas de menús de vBase, el evento por defecto BUS lo copie y generé otro BUS-INCREMENTAL, a este solo le quité las últimas líneas porque al volver a darle el foco pierdes lo previamente escrito.

Una conexión de evento sobre el control de edición, señal tecla pulsada y es todo.

Espero que más o menos te sirva.

Saludos.

Martin Ibarra.


([N3] pacosatu) #5

Hola Cristian y Martín.

Lo que quiero es exactamente lo que hace el Localizador.
Algo parecido al explorador de ficheros de Windows.

Suponer que tengo en una Rejilla 200 artículos resultado de un Cargar Lista.
Tengo 2 columnas REF_MIA y REF_PROV.
Puedo ordenar por cualquiera de las 2 columnas, es una operación rápida en vClient.

En esta situación el Usuario podrá situar el puntero de la Rejilla en cualquier fila, resultado de la búsqueda incremental. Pero siempre tendrá los 200 registros en la Lista, lo único que hace es mover el puntero de la fila seleccionada.

En Velneo, solo tenemos el comando “Seleccionar ficha por posición”.

Sigo investigando y os cuento.
Gracias por vuestros comentarios.

Saludos
Paco Satué


([N1] wikan) #6

@seh, si seleccionas una celda y empiezas a escribir, tienes ya ese comportamiento.
Ej, tienes una lista de artículos, haces click en la columna del nombre y empiezas a teclear el nombre de uno, verás que se mueve la selección.

No se si te sirve…


([N3] pacosatu) #7

Hola Manuel.

Sí efectivamente, ese es el funcionamiento de las Rejillas en Velneo.
Pero es un comportamiento muy poco estandar y nada intuitivo para el usuario.

La búsqueda incremental de la Rejilla tiene un Timeout muy molesto, busca en columnas NO ordenadas (en este caso no es búsqueda incremental) y es necesario 2 clicks de ratón, 1 en la cabecera y otro en la columna (poco intuitivo). Por último, si por ejemplo pulsas la tecla ‘R’, y no existen apellidos que emmpiezan por ‘R’, el puntero no se mueve, debería desplazarse a la letra ‘S’ que sería lo correcto en búsqueda incremental.

Quiero algo con mejor experiencia de usuario (¡qué bien suena eso!), como el Localizador, donde el usuario sabe exactamente qué columna está ordenada, no hay Timeout y puede editar cómodamente en un Textbox la cadena que quiere buscar de forma incremental.

Sigo investigando.
Saludos y gracias por todo.
Paco satué


([N4] velavisual) #8

@seh

Yo uso un control texto con variable local en cuya propiedad ‘Estilos’ pongo ‘Retardo señal value changed’.

Uso la señal ‘value changed’ como conexión de evento y el manejador de evento que realiza la búsqueda que rellena la rejilla.

El efecto visual es el mismo que el de un localizador, salvo que son necesarios tres caracteres.