FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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
__________________
|
#2
|
||||
|
||||
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)
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
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.
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
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
__________________
|
#6
|
||||
|
||||
Hola
No entiendo: Cita:
No lo entiendo la estructura de que?. Saludos |
#7
|
||||
|
||||
Cita:
Saludos
__________________
|
#8
|
|||
|
|||
¿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 |
#9
|
||||
|
||||
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)
......
__________________
Última edición por MaMu fecha: 13-03-2008 a las 07:51:00. |
#10
|
||||
|
||||
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 ? , 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
__________________
Piensa siempre en positivo ! |
#11
|
||||
|
||||
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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#12
|
|||
|
|||
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 |
#13
|
|||
|
|||
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 |
#14
|
||||
|
||||
Cita:
__________________
|
#15
|
||||
|
||||
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.
__________________
|
#17
|
|||
|
|||
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:
+------------+---------+-------+-------+ |categoria | fecha | debe | haber | +------------+---------+-------+-------+ |A | 2007 | 100 | 50 | |B | 2007 | 150 | 200 | |A | 2007 | 50 | 100 | |A | 2007 | 10 | 0 | |C | 2007 | 200 | 50 | |B | 2008 | 100 | 150 | |A | 2008 | 50 | 100 | |A | 2008 | 100 | 200 | |C | 2008 | 50 | 50 | |D | 2008 | 100 | 10 | +------------+---------+-------+-------+ Código:
+------------+----------------+---------------+--------------+---------------+ |categoria | egreso2007 | ingreso2007 | egreso2008 | ingreso2008 | +------------+----------------+---------------+--------------+---------------+ |A | 160 | 150 | 150 | 300 | +------------+----------------+---------------+--------------+---------------+ |B | 150 | 200 | 100 | 150 | +------------+----------------+---------------+--------------+---------------+ |C | 200 | 50 | 50 | 50 | +------------+----------------+---------------+--------------+---------------+ |D | 0 | 0 | 100 | 10 | +------------+----------------+---------------+--------------+---------------+ 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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sincronizar dos BD de SQL | lgarcia | SQL | 2 | 18-05-2007 19:45:00 |
Sincronizar desplazamiento horizontal en dos DbGrid | Héctor Randolph | OOP | 0 | 15-03-2007 23:29:00 |
Sincronizar bdd con ado | dimitri | Conexión con bases de datos | 0 | 29-01-2007 11:10:21 |
Sincronizar ficheros | Status Quo | Varios | 0 | 16-05-2006 18:06:59 |
Sincronizar dbgrid con Header | EITB | OOP | 0 | 21-09-2004 19:29:56 |
|