Ver Mensaje Individual
  #7  
Antiguo 26-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 24
ContraVeneno Va por buen camino
¿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; //with

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.
__________________


Última edición por ContraVeneno fecha: 26-06-2007 a las 23:13:56.
Responder Con Cita