Mit uns zum Adimens-Profi

Adimens-Praxis: der Umgang mit den Zeitfeldern

Adimens rechnet nicht nur mit dem Datum, sondern auch mit Zeitangaben. Bei den sog. »Zeitfeldern« handelt es sich um Textfelder mit bestimmten Formaten. Zum Erfassen von Minuten und Sekunden definiert der Anwender ein Textfeld mit einer Stellenlänge von fünf Zeichen.

Die Eingabe erfolgt, indem er zuerst die Minuten zweistellig eingibt, dann einen Doppelpunkt und dann die Sekunden ebenfalls zweistellig.

Ein Beispiel:

53:23 = 53 min 23 sek

Zum Erfassen der Stunden benötigt Adimens ein achtstelliges Textfeld. Ein Doppelpunkt trennt jeweils Stunden und Minuten sowie Minuten und Sekunden: 22:45:04 = 22 std 45 min 04 sek Wer wissenschaftliche Messergebnisse oder sportliche Leistungen speichert, erfaßt oft Sekundenbruchteile. Auch hierfür gibt es ein spezielles Zeitformat, nämlich ein zwölfstelliges Textfeld. Hier trennt ebenfalls ein Doppelpunkt die Stunden und Minuten sowie Minuten und Sekunden. Nach den Sekunden folgt ein Dezimalpunkt, nach diesem die Zehntel-, Hundertstelund Tausendstelsekunden:

01:30:02.695 = 01 std 30 min 03 sek 
                6 zsek 9 hsek 5 tsek 

Die Beschränkung auf eine oder zwei Stellen hinter dem Dezimalpunkt ist nicht erlaubt. Berechnungen sind nur mit drei Stellen hinter dem Dezimalpunkt möglich. Die Funktionen TIME und SYSTIME füllen die Stellen hinter dem Dezimalpunkt mit Nullen auf. Mit diesen Zeitfeldern rechnet der Anwender so, wie er es von normalen Zeitwerten gewohnt ist. In einer Datei namens ZEITMESSUNG mit den jeweils achtstelligen Feldern »Ende«, »Beginn« und »Dauer« definiert er beispielsweise folgende Rechnung:

Rubrik.FILE ZEITMESSUNG [Dauer] = [Ende] - [Beginn];

Ins Merkmalsfeld »Dauer« trägt der Anwender die Differenz zwischen Anfangs- und Endzeit ein.

Nun eine sinnvolle Anwendung für den professionellen Bereich: die Erfassung der Arbeitszeit von Angestellten.

Aus der Zeitdifferenz zwischen Arbeitsende und Arbeitsbeginn abzüglich der Pausen ergibt sich täglich die geleistete Arbeitszeit. Dazu erfassen wir in der Datei ZEITMESSUNG (vgl. Bild 1 und 2) zunächst den jeweiligen Namen.

Adimens übernimmt automatisch Tag und Arbeitsbeginn und trägt sie in den Datensatz ein. So gehen wir bei jedem Mitarbeiter vor. Am Ende des Tages sucht ein Personal-Sachbearbeiter über die Funktion »Ändern« die jeweiligen Datensätze und speichert sie sofort wieder. Auch hier übernimmt Adimens das Arbeitsende. Die Pausenzeit haben wir in die Rechendefinition ZEITMESS.CAL integriert. Bei einer Änderung der Pausenregelung müssen wir sie aber berücksichtigen:

.FILE ZEITMESSUNG

if [Beginn] > 00:00:00 and [Ende] = 00:00:00 then [Ende] = [SYSTIME]; endif;

if [Ende] > 00:00:00 then [Dauer] = [Ende] - [Beginn] - [Pausen]; endif;

if not ([Ende] - [Beginn] > 01:00:00) then [Dauer] = 00:00:00; endif;

if [Beginn] = 00:00:00 then [Beginn] = [SYSTIME];

[Tag] = [DATE]; [Pausen] = 01:00:00; endif;

[Stunden] = ( [Dauer]+"tf) :2;

[Minuten] = (([Dauer]+MM) :-5) - (([Dau-er]+""):-3);

[Sekunden] = ( [Dauer]+TTTT)-(( [Dauer]+TTTT): 6);

In der Datei MITARBEITER (Bild 3 und 4) existiert für jeden Mitarbeiter ein Datensatz pro Monat. Die beiden Dateien sind über das Feld »Name« verbunden. Im praktischen Einsatz ist hier eine Mitarbeiternummer wegen der Eindeutigkeit vorteilhafter. Hier finden wir auch die Zeitvorgabe für den Monat. Das Feld »gearbeitete Zeit« ist noch leer bzw. mit 0.00 Stunden gefüllt.

Die Verbunddatei AUSWERTUNG (Bild 5 und 6) füllt diese Felder aus. Die Aufsummierung der Einträge mehrerer Datensätze und das Übertragen des Ergebnisses in einen anderen Datensatz funktioniert allerdings nur über »Aditalk« oder über einen Verbund von Dateien. Im letzten Fall müssen wir das Ergebnis in einer anderen Datei ablegen. Die Arbeitszeitwerte der einzelnen Arbeitstage übernimmt Adimens in den Verbund, addiert sie dort zu dem Wert der gearbeiteten Zeit und schreibt diesen Wert in das Feld »gearbeitete Zeit« in der Datei MITARBEITER. Die Praxis sieht wie folgt aus:

.FILE AUSWERTUNG

[Std.] = [Stunden]; [Min.] = [Minuten]; [Sek.] = [Sekunden];

[gearbeitete Zeit] - [gearbeitete Zeit] + (([Sek.]*1.0)/3600.0 + 
([Min.]*1.0)/60.0 + [Std.]*1.0);.

Die Funktion »Globales Ändern« verwaltet auf einmal die Daten aller Mitarbeiter. Allerdings sollte der Anwender vorher durch eine entsprechende Wahldefinition den abzurechnenden Zeitraum einschränken, (tb)

Werner Forkel, ADI-Software GmbH

ADI Software GmbH, Kundenbetreuung, Hardeckstr.5, 7500 Karlsruhe, Tel. 0721/570000


Links

Copyright-Bestimmungen: siehe Über diese Seite
Classic Computer Magazines
[ Join Now | Ring Hub | Random | << Prev | Next >> ]