Ver Mensaje Individual
  #4  
Antiguo 19-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Reputación: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé cómo hacerlo con un clientdataset, no lo he usado nunca de esa forma.

En casos de maestro/detalle como el que comentas, siempre he usado un query para el detalle, ejemplo:
Tengo un querydetalle con la sentencia:
Código SQL [-]
select * from tabladetalle where codigomaestro= :codigo
Y cada vez que se cambia de registro en el maestro se ejecuta esa sentencia con el parámetro del código maestro, ejemplo:

Código Delphi [-]
querymaestroOnChange
begin
  querydetalle.close;
  querydetalle.parambyname('codigomaestro').asinteger := querymaestroCodigo.asinteger;
  querydetalle.open;
end;

De esa forma, añadir más parámetros es algo sencillo, por ejemplo la fechas que te interesa:
Código SQL [-]
select * from tabladetalle where codigomaestro= :codigo and fecha between :fechainicio and :fechafinal
Código Delphi [-]
querymaestroOnChange
begin
  querydetalle.close;
  querydetalle.parambyname('codigomaestro').asinteger := querymaestroCodigo.asinteger;
  querydetalle.parambyname('fechainicio').asdate := datetimepickerinicio.asdate;
  querydetalle.parambyname('fechafinal').asdate := datetimepickerfinal.asdate;
  querydetalle.open;
end;

De todas formas, seguramente puedes hacerlo con el clientdataset, sólo que yo prefiero querys para hacer eso.
Responder Con Cita