Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi anmeldezeit berechnen (https://www.delphipraxis.net/8815-anmeldezeit-berechnen.html)

ffomoon 12. Sep 2003 13:33


anmeldezeit berechnen
 
ich hab ein problem!!!
in einem dbgriid filter ich datensätze raus (von verschiedenen benutzern)
in der tabele gibt es die felder (datum, zeit :Tdatetime) und usernr!!
nun jetzt will ich die anmeldezeiten von den verschiedenen benutzern berechnen!!!
meine lösung weist einen grossen nachteil auf, sie geht jeden datensatz einzeln durch und das dauert bei einer größeren menge an datensätzen natürlich seine zeit!!!

kann mir jemand helfen eine lösung zu finden die besser ist!!??


hier nochmal meine bisherige lösung
Delphi-Quellcode:
var Arbeitszeit,tmp:TDateTime;
    Tage:integer;
begin
 if DBuserNR.Text<>'' then {DBuserNr : TDBedit; }
  begin
   Logdatei.First;
   Arbeitszeit:=0;
    repeat
     tmp:=0;
     if (tmp=0) and (Logdatei.Fields.Fields[6].AsString='1') and (Logdatei.Fields.Fields[1].AsString<>'') then
      begin
       tmp:=Logdatei.Fields.Fields[0].AsDateTime+Logdatei.Fields.Fields[1].AsDateTime;
        repeat
         Logdatei.Next;
        until (Logdatei.Fields.Fields[6].AsString='2') or Logdatei.Eof;
         if Logdatei.Eof then Arbeitszeit:=Arbeitszeit+Now-tmp;
          if Logdatei.Fields.Fields[6].AsString='2' then
           Arbeitszeit:=Arbeitszeit+(Logdatei.Fields.Fields[0].AsDateTime+Logdatei.Fields.Fields[1].AsDateTime)-tmp;
      end;
       Logdatei.Next;
    until Logdatei.Eof;
     Logdatei.First;
     Tage:=trunc(Arbeitszeit);
     Arbeitszeit:=Arbeitszeit-Tage;
    if Tage>0 then Label5.Caption:='Anmeldezeit: '+IntToStr(Tage);
     if Tage=1 then Label5.Caption:='Anmeldezeit: '+Label5.Caption+'Tag ';
      if Tage>1 then Label5.Caption:='Anmeldezeit: '+Label5.Caption+'Tage ';
       Label5.Caption:='Anmeldezeit von '+ComboBoxUSER.Text+': '+TimeToStr(Arbeitszeit)+' Std\Min\Sek';
  end;
end;
danke schonmal im voraus

moon

MSCH 12. Sep 2003 14:46

Re: anmeldezeit berechnen
 
schnellste Möglichkeit wäre, dein gewünschte Auswertung direkt mit SQL in eine Query zu schreiben.
grez
msch

ffomoon 12. Sep 2003 14:49

Re: anmeldezeit berechnen
 
na toll und wie??

das ist das problem!!! :lol:


mfg

moon


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz