Delphi-Quellcode:
if DateBeginSucheEdit.text <> '' then
begin
if DateEndSucheEdit.Text <> '' then
begin
tage := Round(StrToDate(DateEndSucheEdit.Text) - StrToDate(DateBeginSucheEdit.Text));
if tage <= 10 then
begin
SmartQuery1.SQL.Add('and datum >= :ANFANG and datum <= :ENDE');
SmartQuery1.ParamByName('ANFANG').Value := StrToDate(DateBeginSucheEdit.Text);
SmartQuery1.ParamByName('ENDE').Value := StrToDate(DateEndSucheEdit.Text);
end
else
ShowMessage('Differenz darf nicht über 10 Tage sein.');
DateBeginSucheEdit.Clear;
DateEndSucheEdit.Clear;
DateBeginSucheEdit.SetFocus;
// --BREAK--
end
else
begin
SmartQuery1.SQL.Add('and datum = :ANFANG');
DateEndSucheEdit.Text := DateBeginSucheEdit.Text;
SmartQuery1.ParamByName('ANFANG').Value := StrToDate(DateBeginSucheEdit.Text);
end
end
else
begin
if DateEndSucheEdit.Text <> '' then
begin
SmartQuery1.SQL.Add('and datum = :ENDE');
DateBeginSucheEdit.Text := DateEndSucheEdit.Text;
SmartQuery1.ParamByName('ENDE').Value := StrToDate(DateEndSucheEdit.Text);
end;
end;
SmartQuery1.open;
end;
Bei Break soll die Pause folgen, andernfalls zeigt er doch alle Tage an, trotz Fehlermeldung.