Bueno ahí lo até con alambres, usando Between.
Calculo que dia es segun el numero Ej hoy es Lunes 5 entonces la semana va desde lunes a domingo (lo uso igual al domingo)
Si fuera miercoles la semana siempre es de lunes a domingo entonces calculo que NUMERO fue el lunes y hago Between Lunes a domingo siempre.
Código Delphi
[-]
F,F1, F2 : string ;
begin
F := FormatDateTime('dddd',Date);
If F = 'Lunes' then
Begin
F1 := datetostr(Date);
F2 := datetostr(Date+6);
End;
If F = 'Martes' then
Begin
F1 := datetostr(Date-1);
F2 := datetostr(Date+5);
End;
If F = 'Miércoles' then
Begin
F1 := datetostr(Date-2);
F2 := datetostr(Date+4);
End;
If F = 'Jueves' then
Begin
F1 := datetostr(Date-3);
F2 := datetostr(Date+3);
End;
If F = 'Viernes' then
Begin
F1 := datetostr(Date-4);
F2 := datetostr(Date+2);
End;
If F = 'Sabado' then
Begin
F1 := datetostr(Date-5);
F2 := datetostr(Date+1);
End;
If F = 'Domingo' then
Begin
F1 := datetostr(Date-6);
F2 := datetostr(Date);
End;
datos.consulta.Active := False;
datos.consulta.SQL.Clear;
Datos.consulta.Params.CreateParam(ftDate, 'F1', ptInput);
Datos.consulta.Params.CreateParam(ftDate, 'F2', ptInput);
datos.consulta.SQL.Append('select nombres,numero,fechapago,importe,paga');
datos.consulta.SQL.Append('from clientes inner join cuotas on clientes.codigo = cuotas.cod_cliente');
datos.consulta.SQL.Append('where fechapago Between Cast(:F1 as SQL_Date) and Cast(:F2 as SQL_Date)');
datos.consulta.ParamByName('F1').AsDate := strtodate(F1);
datos.consulta.ParamByName('F2').AsDate := strtodate(F2);