AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeiterfassung in DB, generelle Vorgehensweise?
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiterfassung in DB, generelle Vorgehensweise?

Ein Thema von Salomon · begonnen am 11. Okt 2007 · letzter Beitrag vom 17. Okt 2007
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 11:06
Ja, jeder Nutzer gibt seine Zeiten auch selbständig ein. Man kann auf jedem Rechner mehrere Nutzer freigeben (steht alles allerdings ganz simpel in einer Ini).
Ist ein Monat komplett eingegeben, kann der jeweilige Chef den Monat abhaken, dann kann nichts mehr manipuliert werden (jedenfalls nicht von meinen Leuten ).

Ich muss Dich mal auf´s WE vertrösten und stelle das Geraffel dann hier rein. Das Programm läuft für die Nutzer gut, zu Quelltext und Wartung sage ich mal lieber nichts...

stahli
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#12

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 11:17
Das klingt echt gut. Dann freu ich mich schon auf das Wochenende
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#13

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 13:12
Hallo,

ein solches System, ob Bedienterminal oder PC, sollte beim Anmelden als erstes den Status des Users prüfen: arbeitet oder arbeitet nicht. Wer sich bereits als arbeitend angemeldet hat, kann sich nur abmelden und umgekehrt. Die Frage von Überschneidungen erübrigt sich damit, dafür braucht man eine Statusabfrage "arbeitet XY?". Die ist auch sowieso sehr praktisch für einen Anwesenheitsanzeige o.ä. Professionelle System haben oft ein Panel (ein reales, kein TPanel) mit Ausweisleser und LED-Anzeige für jeden User.

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#14

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 13:35
Hi,
für meinen Fall können die Zeiträume vom User auch noch nachträglich eingeben werden. D.h. die User schreiben quasi auf wann Sie wie lange was gemacht haben. Darauf basierend soll dann der monatliche Report generiert werden.

Für eine Zeiterfassung die "realtime" arbeitet solltet man es so machen wie du schreibst. In meinem Fall könnte jedoch ein User probieren einen Zeitraum doppelt zu belegen.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#15

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 13:45
Ich würde in der DB zwei Felder anlegen, nämlich "FROM" und "TO" und die beiden als DateTime. Darin ist das Datum und die Zeit gespeichert und meines Wissens kann man in Delphi damit ganz normal rechnen und auch der Tageswechsel wird berücksichtigt.

Also:

TO - FROM = Anwesenheitszeit

Warum noch ein extra Feld für das Datum?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 14:17
@guidok:
Weil Du dann ein Datum+Uhrzeit als Differenz erhältst.
12.10.07 12:30 Uhr - 12.10.07 12:00 Uhr ergibt dann sowas wie 01.01.1800 00:30 Uhr.
Wenn man das als "30 Minuten" interpretieren will muss man auch wieder herumrechnen.
Daher besser gleich alles in Minuten oder Sekunden speichern...


@Salomon:
So, ich mach´s gleich in der Mittagspause...

Das Programm am besten wenn vorhanden auf M:\Sk laufen lassen (sonst wird das Formular rot gefärbt, damit man sieht, dass man mit Kopiedaten arbeitet). M:\ ist unser Netzlaufwerk.
Der Ordner Sk-Lokal mit der Ini muss auf C:\ liegen.
Gemeinsame Netzzugriffe sind möglich, wenn die BDE entsprechend konfiguriert ist.
Rechtsklick unten rechts auf das Formular erlaubt ein paar Einstellungen.

Wie gesagt, das ganze ist für die Anwender recht bequem, aber die Wartung war nur durch mich geplant. Ich kann im Dienst auch nur mal nebenbei schnell was programmieren - entsprechend sieht das ganze aus

Bei Fragen - jederzeit gern.


@Reinhard:
Ein Chip-System soll in der Stadtverwaltung auch mmaaaaallllll kommen. Früher mussten wir noch Stunden+Minuten in Dezimalzahlen umrechnen... (müssen wir - bzw. mein Programm - jetzt bei der Weitergabe an das Personalamt auch noch) da war mein Programm schon ein riesiger Fortschritt.
Bei den IT-Admins habe ich angefragt, ob ich einen DB-Server nutzen darf - is nich wegen fehlender Sicherheitszertifizierung. Sonst hätte ich das Projekt schon mal generalüberholt. Na ja, die Nutzer können ja aktuell nicht klagen...


stahli
Angehängte Dateien
Dateityp: zip sk-lokal_271.zip (241 Bytes, 40x aufgerufen)
Dateityp: zip sk_184.zip (2,48 MB, 38x aufgerufen)
Dateityp: zip sk_-_delphiprojekt_356.zip (2,05 MB, 42x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#17

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 15:03
Ich habe das ganze eben mal runtergeladen. Werde wohl aber erst nächste Woche dazu kommen näher rein zu schauen. Ist ja schon etwas code Danke dafür!

Wenn man das Datum als "Date/Time" Wert speichert, muss bei Zeitraumvergleichen auch immer das Datum mit angegeben werden. Finde ich recht unpraktisch. Daher werde ich die Zeiten wohl als Float speichern.

Ich wünsche allen ein schönes WE!
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 15:15
Ich würde den von der Datenbank angebotenen Typen für Zeit verwenden, da nur so eine richtige Sortierung möglich ist und die DBMS weitere Verarbeitungsfunktionen für diese Typen anbieteten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 15:32
In einem aktuellen Firebird-Projekt nutze ich für Start- und Endezeiten TDateTime-Felder.
Alle Felder, die eine Dauer beinhalten (berechnete oder vorgegebene) sind Integer und beinhalten die Sekunden. Differenzen zwischen zwei TDateTime kann man ja leicht in Sekunden umrechnen.

Die Darstellung der Dauer erfolgt dann über eine Funktion (bei Wert 75: "noch 1:15 min").
Änderungen von Dauervorgaben sind leicht über TUpDown möglich.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#20

Re: Zeiterfassung in DB, generelle Vorgehensweise?

  Alt 12. Okt 2007, 17:32
Zitat von stahli:
@guidok:
Weil Du dann ein Datum+Uhrzeit als Differenz erhältst.
12.10.07 12:30 Uhr - 12.10.07 12:00 Uhr ergibt dann sowas wie 01.01.1800 00:30 Uhr.
Die Differenz zweier TDateTime-Werte ist aber kein Datum sondern ein Float-Wert, der die Anzahl der Tage (ink. Dezimalwerten) wiederspiegelt. Insofern ist die Differenz hier 1 + 30/1440, oder 1,020833. Und das ist doch genau das Ergebnis, das wir haben wollen.
Wenn Du das in Minuten umrechnest, musst Du nur mit 1440 multiplizieren und erhälst als Ergebnis 1470. Was willst Du mehr?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:47 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