Comunidad Gambas-es
Alguien me explica la potencia del método Data de GridView - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: General (https://gambas-es.org/forumdisplay.php?fid=4)
+--- Tema: Alguien me explica la potencia del método Data de GridView (/showthread.php?tid=464)

Páginas: 1 2 3


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 16-06-2021

Pero bueno no consigo implementar _Data en mi código.

Alguien me puede decir como se desencadena _Data en un GridView tengo una interrupción en mi código en _Data y nunca consigo que entre en el.

Solo esto, ¿que desencadena o que dispara _Data?

Yo cargo mi GridView en una clase GridView personal que me guío como hacerla Shordi. En esta implementamos _Change y funciona bien pero _Data no.

Supongo que Shordi me pedirá un ejemplo, pero es que es tan complejo mi lío de código que me da incluso pereza poner un ejemplo. Y mi proyecto pues no, siento no querer compartirlo. Soy un dinosaurio todavía, perdón.


RE: Alguien me explica la potencia del método Data de GridView - Shordi - 16-06-2021

(16-06-2021, 19:56)gambafeliz escribió:  Pero bueno no consigo implementar _Data en mi código.

Alguien me puede decir como se desencadena _Data en un GridView tengo una interrupción en mi código en _Data y nunca consigo que entre en el.

Solo esto, ¿que desencadena o que dispara _Data?

Yo cargo mi GridView en una clase GridView personal que me guío como hacerla Shordi. En esta implementamos _Change y funciona bien pero _Data no.

Supongo que Shordi me pedirá un ejemplo, pero es que es tan complejo mi lío de código que me da incluso pereza poner un ejemplo. Y mi proyecto pues no, siento no querer compartirlo. Soy un dinosaurio todavía, perdón.

El evento Data no hay que lanzarlo, se levanta solito cuando una celda necesita ser visualizada. Si a ti no se te levanta (el evento Tongue ) es que el uso que haces del Gridview es erróneo. Lo único interesante para tu problema es ese, da igual de dónde saques los datos (cogier los saca de un rdir, por ejemplo), pero no puede ser complejo hacer una versión reducida de tus tejemanejes y subirla. Eso sí, si tanta pereza te da el tema, será que el problema no es importante. Tampoco hay que romperse el coco en los detalles.

Saludos.


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 17-06-2021

Lo haré en cuanto pueda, es que estoy malito, tengo un gripazo que no un coronavirazo, pero mas o menos tengo un ladrillo encima de la cabeza. Y estoy algo de mal humor pero bueno son cosas mías, las mujeres y demás cosas ya sabes seguramente te pase algo así o que se yo.


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 18-06-2021

Hola a todos

Os adjunto mi ejemplo para ver si sois capaces de cambiar alguna fila de color según los parametros de _Data()

Gracias por adelantado por cada esfuerzo que hacéis.


RE: Alguien me explica la potencia del método Data de GridView - Shordi - 18-06-2021

El evento Data rellena los datos del formulario cuando es necesario. Tú con tu clase cuadrícula ya lo has hecho, luego el evento data no se dispara porque no es necesario. Comenta la línea 28 de tu clase cuadrícula la que hace la llamada a rellenaDatosGridviewSinFormato
y todo funcionará muuuucho mejor.
De todas formas unos apuntes:
No entiendo por qué declaras Cuadricula1 en fMain como GridView, y al tiempo defines una clase exportada Cuadricula.
Declarala como cuadrícula y te ahorras todas las llamadas a los módulos y demás.
te adjunto un ejemplo en el mismo proyecto.
Activa el perfilado del depurador y verás la diferencia de velocidades. En mi máquina se pasa de 68.000 como_se_llamen a 17.000 para un listado de casi 500.000 archivos
Luego puedes añadir todas las propiedades a la clase Cuadrícula para que haga lo que tú quieras y que te salgan en el IDE para no tener que ponerlas por códio, añadir un icono para que no salga sólo un cuadradito con el nombre, crearle eventos nuevos, etc. Incluso rellenarla con su propio evento data... pero eso es otra historia.

Saludos.


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 19-06-2021

Shordi un millón de gracias. Lamento que no seamos vecinos y poder conversar cosas como estas aunque sea desde la ventana de la cocina a ventana. Que pena Sad

Es que falta la comunicación verbal no solo la escrita. Me salen preguntas como un niño lleno de interés para aprender. Bueno, todo no se puede tener, me bajo de las nubes y seguo un poco preguntando, es para mi muy importante algunas cuestiones y afirmaciones que me planteas.

(18-06-2021, 22:39)Shordi escribió:  El evento Data rellena los datos del formulario cuando es necesario. Tú con tu clase cuadrícula ya lo has hecho, luego el evento data no se dispara porque no es necesario.

¿Quieres decir que si yo no lo relleno y le paso los datos a pelo indicado estructura del Gridview (filas y columnas) _Data() se encarga de rellenarlo todo y no yo por código?

Y según tu afirmación de que yo ya relleno. Como dije:
1. Relleno los datos del grid.
2. Con otros criterios de otras tablas que no se puede unir en la primera vuelvo a recorrer el grid para cambiar el color de algunos campos. ¿Según me cuentas entonces no tengo que usar tampoco _Data() en este caso y sucesivos coloreos?

(18-06-2021, 22:39)Shordi escribió:  Comenta la línea 28 de tu clase cuadrícula la que hace la llamada a rellenaDatosGridviewSinFormato
y todo funcionará muuuucho mejor.
Es que ahí relleno mi Grid y filtro cosas de forma general, como voy a prescindir de esto, creo que no es posible, digo yo humildemente.

(18-06-2021, 22:39)Shordi escribió:  De todas formas unos apuntes:
No entiendo por qué declaras Cuadricula1 en fMain como GridView, y al tiempo defines una clase exportada Cuadricula.
Declarala como cuadrícula y te ahorras todas las llamadas a los módulos y demás.
Es que esta subrutina le llega GridView y Cuadricula por cuestiones de que primero hice mi programa con GridView y después una buena persona llamada Shordi me ayudó a crear Cuadricula solo un poquito por que si es una porquería es por mi no por esta persona. En fin, fue por encajar los dos mundos y por baguesa ya que podría haberlo cambiado todo a Cuadricula en los demás código y eliminar GridView. Y también para reutilizarlo en todos mis programas pasados.

(18-06-2021, 22:39)Shordi escribió:  te adjunto un ejemplo en el mismo proyecto.
Activa el perfilado del depurador y verás la diferencia de velocidades. En mi máquina se pasa de 68.000 como_se_llamen a 17.000 para un listado de casi 500.000 archivos
Ni me he enterado, oiga !!! , ¿que dices? ¿eso es español? no se hacerlo Sad

(18-06-2021, 22:39)Shordi escribió:  Luego puedes añadir todas las propiedades a la clase Cuadrícula para que haga lo que tú quieras y que te salgan en el IDE para no tener que ponerlas por códio, añadir un icono para que no salga sólo un cuadradito con el nombre, crearle eventos nuevos, etc. Incluso rellenarla con su propio evento data... pero eso es otra historia.

Saludos.

Gracias no te puedo decir más Smile


RE: Alguien me explica la potencia del método Data de GridView - Shordi - 19-06-2021

Me vengo arriba y creo que voy a subir algún ejemplo y/o video tutorial sobre el tema...

Ya te cuento


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 19-06-2021

Jajaja

Jo tio estoy leyendo tus anotaciones en el código y parezco que soy un bebe aprendiendo a programar Smile

Es que hay cosas que aunque tienes razón deberías conocer el código completo para quizás replantear la lógica que me estas aclarando. Pero claro tu no tienes la culpa sino yo que no doy el código al completo. Creo que tienes razón pero por otra parte quizás si lo ves todo en su conjunto al completo quizás reculas y entiendes por que lo hago.

Gracias sabes tanto que flipo contigo y tu inmensidad. Me parto Smile

Lo dicho que pena que no lo conversemos, no te digo nada es simplemente lo que siento.


RE: Alguien me explica la potencia del método Data de GridView - Sebasg - 21-06-2021

Efectivamente, para que la velocidad que confiere el evento data sea tal debes utilizar dicho evento para colorear y para poner el dato, si necesitas hacer dos consultas el efecto se pierde. No obstante hablas de unas 30 filas y 2 columnas.
Para un gridvew así no vas a notar ninguna diferencia. La diferencia en agilidad la notarás con resultados que tengan cientos de filas y columnas al menos ya que se basa en que solo se ejecuta el evento en las casillas que se muestran. Si hablamos de 30 filas y dos columnas probablemente se muestran todas, pero imagínate que tienes un resultado con 1000 filas de las que en pantalla no se van a mostrar más que 30 ó 40; con un relleno explícito tienes que hacer un loop doble para rellenar todas las filas y columnas mientras que el evento data solo rellenará las que se muestran con un impresionante efecto acelerador. Cuando se mueva el scroll o se hagan visibles otras celdas se generará el evento data para las nuevas casillas que haya que visualizar por lo que es un relleno dinámico.
Insisto para resultados de pocos datos el efecto no se nota.


RE: Alguien me explica la potencia del método Data de GridView - gambafeliz - 21-06-2021

Gracias Sebasg Smile

Si se trata de 30 filas y 2 columnas. Y lo que pasa es que yo hago algo como esto:

Estas etiquetas son subrutinas para que lo entiendas:

cargarDatos(y le paso la consulta a una clase Gridwiew) y desde dentro yo sin _Data() cargo la consulta en un result y voy cargando los 30 filas 2 columnas
coloreaFavoritos(y cojo las filas del Gridview y comparo mi nuevo result con la columna 1 para colorear el elemento favorito)
coloreaInactiva(y hago exactamente lo mismo con otro result)
cargoSaldoPrevisto(y hago otro result distinto y cambio la columna 2 y pongo saldo actual y previsto en la misma columna 2 celda a celda)

En el primer caso se haría bien el _Data() pero en los demás no se me ocurre como, ya que es comparar fila del grid con mis datos de mi base de datos.

Pero hago algo parecido en la presentación de una cuenta contable como si de una cartilla bancaria fuera y esto si va a tener muchísimas lineas ya que tengo previsto que gestione toda la vida de la cuenta y la cargue hasta el infinito.

Esto me hace pensar que tengo que resolver esto antes de que tenga mas de un año cada cuenta. Este lío como lo resolveríais cualquiera que lo lea, gracias.