Ver Mensaje Individual
  #1  
Antiguo 30-11-2012
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Reputación: 16
novato_erick Va por buen camino
traer registros de dos consulta con ClientDataSet

Estimados Señores:

me gustaría saber si es posible ir agregando datos proveniente de dos consultas diferentes (cada uno con su respectivo ClientDataSet) a un tercer ClientDataSet.

aquí esta mi código ejemplo:

Código Delphi [-]
procedure TfrmPrincipal.btnBuscaArancelClick(Sender: TObject);

var
i : integer;
CodBarra, CodArancel, NomArancel: string;

begin

     begin
         CodArancel := trim(edit1.Text);
         dmLogica.cdsInventarioConsulta.Close;
           with dmConecta.qConsultaArancel do
             begin
               close;
               ParamByName('Arancel').AsString := CodArancel;
               open;
              end;
         dmLogica.cdsInventarioConsulta.Open; // Aqui pongo los datos traidos desde mi primera consulta al ClientDataSet
         i := dmlogica.cdsInventarioConsulta.RecordCount; // realizo un conteo de registro para crear mas adelante un ciclo For
         edit2.Text := IntToStr(i);    // para conocer en el edit la cantidad de registros devueltos no es relevante
     end;

     dmlogica.cdsInventarioConsulta.First; //Para colocarme en el primer registro
      for I := 1 to dmlogica.cdsInventarioConsulta.RecordCount do //Empiezo mi ciclo For a partir del total de Registro traido de la base de datos
    begin
     dmlogica.cdsConsultaVenta.Close; //Cierro cdsConsultaVenta
          begin
          CodBarra := dmlogica.cdsInventarioConsultaCOD_BARRAS.AsString;
          NomArancel := dmLogica.cdsInventarioConsultaNOMBRE2.AsString;
           with dmConecta.qConsultaVenta do
            begin
              Close;
              ParamByName('COD').AsString := CodBarra;
              ParamByName('FechaInicio').AsDateTime := dtpInicio.DateTime;
              ParamByName('FechaFin').AsDateTime := dtpFinal.DateTime;
              Open;
            end;
            dmLogica.cdsConsultaVenta.Open; //Abro mi cdsConsultaVenta en teoria para ir mostrando cada consulta realizado por el ciclo For.
            dmlogica.cdsInventarioConsulta.Next;
            dmLogica.cdsAgregaValor.AppendData(dmlogica.cdsConsultaVenta.Data, True);//Aqui es donde pretendo que cada vez que realizaba una consulta me agregaria en mi cdsAgregaValor las consultas
          end;                                                                                                      //Realizadas en mi ciclo For
    end;
end;

En fin utilizo el debug y hace el ciclo pero el problema que el cdsConsultaVenta no hace nada y al final el tercer ClientDataSet llamado cdsAgregaValor no captura nada...

Es posible hacerlo?



Saludos

novato_erick
Responder Con Cita