![]() |
Sincronizar 2 DBGrid
Como hago para Sincronizar 2 DBGrid, es decir, que se ubiquen en la misma posición del registro. Cada uno tiene su DataSource, y su consulta, pero la estructura del contenido de ambos es identica.
Saludos |
Si ambas tablas están relacionadas de alguna forma (si las quieres sincronizar, alguna relación deben tener), ¿No sería más fácil visualizarlo todo en un único Grid? (Utilizando una JOIN para tener una única fuente de datos)
|
No se si mamu se refiere a eso ....
Supongo que le interesará sincronizarla en algún momento determinado. Pienso que lo más inmediato sería que cuando quieras o necesites sincronizarlas, le envies al segundo grid la clave en la cual se encuentre el primer grid, y en algún procedimiento del segundo grid realizes un Locate. Ya dependerá del evento que quieras uitlizar para automatizar esta función. |
Cita:
Si pruebas a realizar un Locate (o a lanzar una SQL) sobre una tabla cada vez que mueve el apuntador en la otra, verás que en la práctica es casi inviable. |
En realidad lo que quiero hacer, es controlar dos DBGrid, es decir, que el segundo DBGrid se comporte como el primero. Cuando hago clic en un registro del primer DBGrid, que el segundo DBGrid se posicione en el mismo lugar. Ambos estan con RowSelect y asi con todo lo que haga en el primero, se refleje en el segundo.
Saludos |
Hola
No entiendo: Cita:
No lo entiendo la estructura de que?. Saludos |
Cita:
Saludos |
¿Y no has considerado la sugerencia que te hizo Neftali en el segundo mensaje? Podrías tener un sólo DBGrid con una columna para cada fecha, haciendo muy fácil la comparación visual y sin ener que recurrir a trucos raros.
Bye |
Cita:
tengo 2 tablas: CATEGORIAS y CAJA y consulto ambas en un año y otra en otro año (year(fecha)=xxxx), para compararlas osea, ejecuto esto:
y con la otra, lo mismo pero distinta fecha. Lo que no me doy cuenta, donde meter el JOIN (sobre la misma tabla)
:eek::eek::eek: ...... :(:(:( |
Pienso que tu primera consulta que expones sería correcto para el fin que propones :
Entonces .... por qué no planteas tu segunda consulta de la misma manera ? :rolleyes:, es decir, no creo que hiciera falta ningún Join
Bastará que ahora tengas un único DataSource para tus dos DBGrid's, y que en uno de los DBGrid uses las columnas de los campos de un año, y en el otro DBGrid las columnas de los campos del otro año. Cuando te muevas en uno de los Grid, automáticamente el otro también se moverá a la posición correspondiente del otro año por estar apuntando al mismo DataSource ;) |
Hola Mamu, para la parte de sincronización talvez te sirva utilizar la propiedad RecNo de cada uno de tus dataSet.
Lo que haría primero es ponerle a las propiedades dgRowSelect->True y dgAlwaysShowSelection->True. Digamos que el Query1(DataSource) esta enlazado a tu DBGrid1, entonces obtienes la fila Activa con RecNo y le dices que esa fila también sea activa para tu Query2 que estara enlazado a tu otro BDGrid.
Saluditos |
La consulta que pone gluglu es perfecta. Pero ya teniendo los datos en una sóla consulta, yo me olvidaría de los dos DBGrids y usaría uno sólo.
Bye |
Creo que podemos utilizar una consulta menos complicada y más eficiente al no usar tantas subconsultas:
Al final de cuentas, no requerimos enlazar a la tabla parapersonales. Lo único que necesitamos es que nuestro motor acepte algún tipo de condicional. En el ejemplo uso el IF de MySQL. Bye |
Cita:
|
Cita:
Año 2008---------Año 2007 categoria1 2008 categoria1 2008 categoria2 2008 categoria2 2008 categoria3 2008 categoria3 2008 categoria4 2007 categoria4 2007 y yo solo quiero encolumnar donde hubiese resultado ya que es para hacer una comparación paralela, asi: Año 2008---------Año 2007 categoria1 2008 categoria1 ---- categoria2 2008 categoria2 ---- categoria3 2008 categoria3 ---- categoria4 ---- categoria4 2007 lo que agrego es la fecha, para poder mostrarla
y en cuyo caso en que en ambos años haya resultados, me repetiria la categoria, asi: Año 2008---------Año 2007 categoria5 2008 categoria5 2008 categoria5 2007 categoria5 2007 lo que me complica la visualización para comparar. |
En fin, lo solucionaré con campos calculados y veré que pasa.
|
No entiendo lo que quieres decir en tu penúltimo mensaje. ¿Para qué quieres agregar la fecha?
Vamos a ver, si tienes la tabla caja Código:
+------------+---------+-------+-------+Código:
+------------+----------------+---------------+--------------+---------------+Pero no entiendo entonces cuál es el problema para comparar. Según se entendía de la primera consulta SQL que escribiste, quieres comparar los egresos e ingresos, por categoría, de dos ejercicios distintos. Y eso lo puedes hacer con el tipo de resultado que te muestro: cada renglón es una categoría y puedes ver una columna por ejercicio. En todo caso, puedes basarte en los datos de ejemplo que pongo para explicar con más detalle lo que buscas. Bye |
| La franja horaria es GMT +2. Ahora son las 00:04:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi