Ver Mensaje Individual
  #2  
Antiguo 07-12-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que deberás hacerlo a mano...

- pones los 3 DataSets ordenados por los mismos campos
- Luego recorres los tres al mismo tiempo, verificando que la clave (los campos por los que se unen) coincidan.
- En donde no coincidan, deberás rellenar con blancos los lugares que le toca.

También se me ocurre hacerlo utilizando el DataSource.
Esto une el primer DataSet con el segundo y el tercero, pero no controla los que están en el segundo y en el tercero y no en el primero

Código Delphi [-]
{Los DataSource}
DSDataSet1.DataSet := DataSet1;
DSDataSet2.DataSet := DataSet2;
DSDataSet3.DataSet := DataSet3;

{La union de los DataSets a travez de su DataSource: 1-->2 y 1-->3}
DataSet2.DataSource := DSDataSet1;
DataSet3.DataSource := DSDataSet1;

{O puede unirse asi: 1-->2 y 2-->3}
DataSet2.DataSource := DSDataSet1;
DataSet3.DataSource := DSDataSet2;

{Abro las tablas}
DataSet1.Open;
DataSet2.Open;
DataSet3.Open;

{Recorro DataSet1 y en DataSet2 y 3 se posicionaran automaticamante}
while (not DataSet1.EOF) do
begin
   ...
   DataSet1.Next;
end;

Última edición por duilioisola fecha: 07-12-2010 a las 19:09:31.
Responder Con Cita