Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
No entiendo:
Cita:
Empezado por mamu Ver Mensaje
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 es asi, por que no uno solo para los dos dbgrid?.
No lo entiendo la estructura de que?.
Saludos
Responder Con Cita
  #2  
Antiguo 13-03-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 21
MaMu Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
No entiendo:

Si es asi, por que no uno solo para los dos dbgrid?.
No lo entiendo la estructura de que?.
Saludos
Porque ambos apuntan a la misma tabla, pero la consulta difiere en el campo fecha, en donde uno es mayor al otro. Y lo que quiero es visualizar ambos paralelamente y cotejar datos entre ambos, a modo comparativo.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #3  
Antiguo 13-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
¿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
Responder Con Cita
  #4  
Antiguo 13-03-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 21
MaMu Va por buen camino
Cita:
Empezado por keyboy Ver Mensaje
¿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
Osea, que tendria que hacer un SELF-JOIN, porque deberia unir la tabla consigo misma.

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:


Código SQL [-]
select categoria, (select sum(debe) from caja t 
where t.categoria=a.categoria and year(t.fecha)=2008) as egreso,
(select sum(haber) from caja t where t.categoria=a.categoria and year(t.fecha)=2008)
 as ingreso from parapersonales a

y con la otra, lo mismo pero distinta fecha.
Lo que no me doy cuenta, donde meter el JOIN (sobre la misma tabla)


Código SQL [-]
select categoria, 
(select sum(debe) from caja t where t.categoria=a.categoria and year(t.fecha)=2008) as egreso,
(select sum(haber) from caja t where t.categoria=a.categoria and year(t.fecha)=2008) as ingreso 
from parapersonales a INNER JOIN (select categoria, 
(select sum(debe) from caja u where u.categoria=b.categoria and year(u.fecha)=2007) as egreso,
(select sum(haber) from caja u where u.categoria=b.categoria and year(u.fecha)=2007) as ingreso 
from parapersonales b)



......

__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 13-03-2008 a las 07:51:00.
Responder Con Cita
  #5  
Antiguo 13-03-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Pienso que tu primera consulta que expones sería correcto para el fin que propones :

Código SQL [-]
Select a.categoria,
  (Select sum(debe) from caja t1
   where t1.categoria = a.categoria and year(t1.fecha) = 2008) as egreso,
  (Select sum(haber) from caja t2
   where t2.categoria = a.categoria and year(t2.fecha) = 2008) as ingreso
from parapersonales a

Entonces .... por qué no planteas tu segunda consulta de la misma manera ? , es decir, no creo que hiciera falta ningún Join

Código SQL [-]
Select a.categoria,
  (Select sum(debe) from caja t1
   where t1.categoria = a.categoria and year(t1.fecha) = 2008) as egreso2008,
  (Select sum(haber) from caja t2
   where t2.categoria = a.categoria and year(t2.fecha) = 2008) as ingreso2008,
  (Select sum(debe) from caja u1
   where u1.categoria = a.categoria and year(u1.fecha) = 2007) as egreso2007,
  (Select sum(haber) from caja u2
   where u2.categoria = a.categoria and year(u2.fecha) = 2007) as ingreso2007
from parapersonales a

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 !
Responder Con Cita
  #6  
Antiguo 13-03-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
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.

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
 Fila : Integer;
begin
 Fila := Query1.RecNo;
 Query2.RecNo := Fila;
end;

procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
 Fila : Integer;
begin
 if (Key=vk_Up) or (Key=vk_Down) then
  begin
   Fila := Query1.RecNo;
   Query2.RecNo := Fila;
  end;
end;

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.
Responder Con Cita
  #7  
Antiguo 13-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 18:49:53.


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
Copyright 1996-2007 Club Delphi