procedure TForm1.Button1Click(Sender: TObject);
var
sod: TTime;
// Start of day
sop: TTime;
// Start of production
datum: TDate;
// Datum des Servers
zeit: TTime;
// Zeit des Servers
DayOffsetStart: Integer;
// 0 = heute; -1 = Gestern
DayOffsetEnde: Integer;
// 0 = heute; 1 = Morgen
VonDatumZeit: TDateTime;
// Abfrage start
BisDatumZeit: TDateTime;
// Abfrage ende
begin
sod := EncodeTime(0, 0, 0, 0);
// 00:00:00 // Neuer Tag neues Glück
sop := EncodeTime(19, 0, 0, 0);
// 19:00:00 // Die Arbeit beginnt
dbMain.HostName := Form2.Hostname.Text;
//Server
dbMain.User := Form2.User.Text;
//Benutzername
dbMain.Password := Form2.Password.Text;
//Passwort
dbMain.Database := Form2.Datenbank.Text;
//Name der Datenbank
dbMain.Connected := True;
//Verbindung herstellen
Screen.Cursor := crHourGlass;
try
with qrMain
do // Ersteinmal Datum und Zeit vom Server holen.
begin
Close;
SQL.Text := '
SELECT CURDATE() AS datum, CURTIME() as zeit';
Open;
datum := FieldByName('
datum').AsDateTime;
zeit := FieldByName('
zeit').AsDateTime;
Close;
end;
// Jetzt prüfen welche Zeiträume berücksichtigt werden müssen.
if (zeit >= sod)
and (zeit < sop)
then // Es ist zwichen 00:00:00 und 19:00:00
begin
DayOffsetStart := -1;
// Abfrage beginnt gestern
DayOffsetEnde := 0;
// Abfrage endet heute
end
else //Es ist zwichen 19:00:00 und 23:59:59
begin
DayOffsetStart := 0;
// Abfrage beginnt Heute
DayOffsetEnde := 1;
// Abfrage endet Morgen
end;
// Start- und Endzeitpunkte berechnen
VonDatumZeit := datum + sop + DayOffsetStart;
BisDatumZeit := datum + sop + DayOffsetEnde;
with qrMain
do // Und los geht es
begin
Close;
SQL.Text :=
'
SELECT COUNT(*) AS anzahl '+#10+
'
FROM table_ordertracking '+#10+
'
WHERE (order_type=:order_type)'+#10+
'
AND (datum > :von) AND (datum <= :bis)';
ParamByName('
order_type').AsString := '
FT';
ParamByName('
von').AsDateTime := VonDatumZeit;
ParamByName('
bis').AsDateTime := BisDatumZeit;
Open;
anzahl := FieldByName ('
anzahl').AsInteger;
DFCount.Text:= IntToStr(anzahl);
qrmain.Close;
finally
Screen.Cursor := crdefault;
end;
end;