https://foro.gambas-es.org/viewtopic.php?f=1&t=5502
-----------------------------------
tincho
Domingo, 29 May 2016, 13:07

Problema Con La Tecla Enter Y Flechas En Un Grid
-----------------------------------
Hola.
Estoy usando 3 grid, uno para los datos y otros 2 justo encima, para los filtros. Estos ultimos se ajustan según el grid de los datos, por ejemplo, si modifico el ancho de las columnas del grid de los datos el otro también se modifica etc. etc.
El efecto es que todo el tiempo hay una grilla de iguales dimensiones sobre el encabezado y queda parecido a sqlitebrowser. En este grid de filtros escribo texto para filtrar la consulta sql para luego con el evento data recargar el grid de los datos de acuerdo a lo filtrado.
Todo va fenómeno, hasta que pulso la tecla enter o la flecha y se pone en un bucle infinito en el evento _click.
No logro entender por que sucede esto.
 [img]https://foro.gambas-es.org/files/images/2590/captura_de_pantalla_2016_05_29_13_50_15.png[/img]
Por todo lo demás funciona bastante bien.
Si alguno se le ocurro alguna idea de por donde puede estar el problema, por favor comentelo.

Saludos.


-----------------------------------
shordi
Domingo, 29 May 2016, 16:08

Re: Problema Con La Tecla Enter Y Flechas En Un Grid
-----------------------------------
[quote]odo va fenómeno, hasta que pulso la tecla enter o la flecha y se pone en un bucle infinito en el evento _click.
No logro entender por que sucede esto.[/quote]

Yo creo que tiene que haber algún error en algún sitio. Posiblemente en el código... casi seguro.  :mrorange:  :mrorange:  :mrorange: 

Eso era ironía. Tincho, ya tienes suficiente experiencia en el foro para saber hacer mejores preguntas. Anda, elabora un poco, sube código, sube el proyecto, una fotito, algo...


-----------------------------------
tincho
Domingo, 29 May 2016, 17:44

Re: Problema Con La Tecla Enter Y Flechas En Un Grid
-----------------------------------
[quote user="shordi" post="32604"]Yo creo que tiene que haber algún error en algún sitio. Posiblemente en el código... casi seguro.  :mrorange:  :mrorange:  :mrorange: 
Eso era ironía. Tincho, ya tienes suficiente experiencia en el foro para saber hacer mejores preguntas. Anda, elabora un poco, sube código, sube el proyecto, una fotito, algo...[/quote]
Si un poco flaca mi pregunta la verdad. :evil:  pero estaba esperando despertar interes  :mryellow:  :mryellow: 
Estoy intentando hacer un programa que permita hacer unos filtros rápidamente sobre un resultado que se muestra en un tableview, y luego guardar esos filtros (la sentencia sql en realidad) como filtros que se pueden usar para generar diferentes documentos en forma batch.
Subo aquí el código, que esta súper verde, pero funciona hasta cierto punto.
 [img]https://foro.gambas-es.org/files/images/2590/captura_de_pantalla_2016_05_29_13_50_15_2.png[/img] 
Modo de uso:
1) Hay que seleccionar el motor de base de datos (solo funciona de momento sqlite) luego hay que hacer doble click en el textbox del host y se abrirá el dialogo de selección del archivo sqlite
2) Una vez seleccionado el archivo sqlite hay que "conectarse" al archivo mediante el botón que tiene el icono de conexión, y en este punto aparecerá una lista en el treeview con todas las tablas (menos las de sistema) y haciendo click en una de esas tablas se mostrara la información en el tableview de datos.
3) Hay dos tableview de una linea, el de arriba es para seleccionar el tipo de operador para la sentencia y el de abajo es para el valor.
De momento trabaja solo con una tabla a la vez, pero mas adelante lo hará con mas tablas a la vez (que es lo interesante para hacer consultas sql).


-----------------------------------
shordi
Domingo, 29 May 2016, 20:58

Re: Problema Con La Tecla Enter Y Flechas En Un Grid
-----------------------------------
Un tableview sale del estado de editor cuando se pulsa enter o una flecha de dirección. Se dispara entonces el evento tv_Save  en este evento tú llamas a la función cmdArrangeGrid, que reconstruye el tableView y eso (no he tenido paciencia para depurar en qué momento) dispara el evento tbvDataFilterValue_Click otra vez, con lo que lo metes en un bucle infinito.

Si comentas la línea 657 de tu proyecto rompes ese bucle.

Es un poco enrevesado todo lo que haces, plantéatelo de una forma más simple y poco a poco añade o quita comportamientos y capacidades al Form

La idea no es mala, pero cuestiónate, por ejemplo qué pasa si se trata de una base de datos con tropecientos registros o que está en un servidor lejano que tarda cuatro o cinco segundos en responderte a cada consulta...
Eso que pretendes lo tengo yo hecho, pero con un enfoque taaaan distinto y taaaan asociado a los problemas de mi empresa que no me atrevo a contarlo por aquí...

Saludos


-----------------------------------
tincho
Domingo, 29 May 2016, 22:46

Re: Problema Con La Tecla Enter Y Flechas En Un Grid
-----------------------------------
[quote user="shordi" post="32607"]Un tableview sale del estado de editor cuando se pulsa enter o una flecha de dirección. Se dispara entonces el evento tv_Save  en este evento tú llamas a la función cmdArrangeGrid, que reconstruye el tableView y eso (no he tenido paciencia para depurar en qué momento) dispara el evento tbvDataFilterValue_Click otra vez, con lo que lo metes en un bucle infinito.[/quote]
Ok, tu planteo me hizo preguntarme en que habia en cmdArrangeGrid que generaba un evento data en los grid de los filtros y voila, encontré la metida de pata. asi que comente las lineas que obligaban a generar el evento data en esos grid.
[code linenumbers=false syntax=gambas]
'tbvDataFilterType.Rows.Count = 0
'tbvDataFilterValue.Rows.Count = 0
[/code]

Por otra parte el evento _save también se genera haciendo click en otra celda, pero mi problema no fue por el evento save sino por generar por la fuerza un evento data donde no hacia falta.

Gracias por la ayuda.


