¿como haces la búsqueda? ¿como llenas la tabla?
Lo más simple sería utilizar componente TQuery para hacer la búsqueda. Necesitarías un TDataset enlazado al TQuery y además, enlazar el Dataset a un TDBGrid para mostrar los resultado. El quickreport estaría enlazado al TQuery y diseñado para que muestre los resultado.
Supongo que tendrás dos TDTPicker para seleccionar las fechas, un TEdit para ingresar el número de empleado, un botón "Buscar" y un TDBGrid par amostrar los resultados.
En el evento onclick del tu botón Buscar:
Código Delphi
[-]
with TuQuery do begin
If Active then Close;
SQL.Clear;
SQL.Add('Select A.Fecha, T.NombreTrabajo');
SQL.Add('From Emp_YEE A');
SQL.Add('join Empleados E on A.IDEmpleado = E.IDEMpleado');
SQL.Add('join Trabajos T on E.IDTrabajo = T.IDTrabajo');
SQL.Add('Where A.IDEmpleado = :Empleado');
SQL.Add('And A.Fecha Between :FechaIni and :FechaFin');
SQL.Add('Order by A.fecha, A.IDTrabajo');
ParamByName('Empleado').AsString := Edit1.Text;
ParamByName('FechaIni').AsDateTime := dtpFechaINi.DateTime;
ParamByName('FechaFin').AsDateTime := dtpFechaFIN.DateTime;
Open;
end;
Dos cosas:
1. Si utilizas "FECHA>=:FechaInicio and FECHA<=:FechaFin" la fecha final siempre tendrá que ser mayor a la fecha inicial, de lo contrario no te mostrará resultado. Con lo que tendrías que validar que la fecha sea correcta.
Pero, si utilizas "Fecha Between :FechaIni and :FechaFin" no tendrás que hacer esta validación ya que no importa cuál fecha es mayor a la otra.
2. Para ingresar el query puedes utilizar SQL.Text he ir agregando línea por línea, igual que como se hace con SQL.Add. La diferencia es que si utilizas SQL.Text y tienes un error, tu manejdor de base de datos siempre te dirá que tienes un error en la línea 1; y si utilizas SQL.Add, tu base de datos te dirá el número exacto de la línea donde esta el error.
P.D. Los nombres de las tablas y de los campos deberás ajustarlos a los que tu tienes.