Rechnen mit Zeitwerten, Eintrags+Änderungs-Protokoll

Hallo! Ich komme mit der Datums/Zeit-Handhabung nicht zurecht in den Datenbankfeldern.

Ich möchte, daß beim Anlegen eines neuen Datensatzes die aktuelle Zeit in ein EIngabefeld UNVERÄNDERBAR hinterlegt wird, als Tag und Uhrzeit, oder als serielle Zeit.

Dieser Wert soll in einem späteren Feld verglichen werden mit einem händisch eingegeben Wert, die Differenz soll ab einer bestimmten Größe zu einer Meldung führen, die in einem weiteren, nicht editierbaren Feld aufgeht. Dadurch soll markiert werden, wenn Mitarbeiter ihre Arbeitszeit weit außerhalb der realen Arbeitsschicht (also nachträglich) eingeben oder gar ändern.

Bisher habe ich das bezogen auf Uhrzeit hingekriegt, für das Datum-Händling war ich zu blöd. Also 2 Wochen später um die gleiche Uhrzeit führte zu keiner Meldung.

Jetzt wollte ich sicherheitshalber die Eintragszeit als NICHT ÜBERSCHREIBBAR einstellen, dabei verändert sich aber die ganze Datenbank seit dem Zeitpunkt dieser Änderung: alle Einträge in das Feld “Eintragszeit” werden auf den aktuellen Zeitpunkt gesetzt, was natürlich völlig unsinnig ist.

Ich hoffe, jemand versteht den Sinn: Anlage und Veränderung sollen protokolliert UND geschützt werden!

Ich dachte mal, ich hätte das rausgefunden, aber is nicht.

Kann man eigentlich, wie im guten alten 1StBase, die Datenbankstruktur als Datei sehen, ausdrucken zwecks Doku und Fehlersuche?

Danke für Hilfe

Aw: Rechnen mit Zeitwerten, Eintrags+Änderungs-Protokoll

Hallo Windm.

Dein Vorhaben geht SO nicht umzusetzen.

Aber vielleicht hilft diese Vorgehensweise:

Lege z.B. eine DB-Tabelle „Stempeluhr_Anmelden“ an.

Füge ihr z.B. die DB-Felder „Mitarbeiter“, „Anmelden“, „geändert“ und „Mitteilung“ hinzu.

Datentypen:

„Mitarbeiter“ = Text (Combobox (editierbares Feld mit Liste) → MitarbeiterA, MitarbeiterB, …)

„Anmelden“ = Zeitpunkt (Combobox (editierbares Feld mit Liste) → JETZT)

„geändert“ = automatisches Standardfeld „geändert“ Datumsformat: TT.MM.JJJJ Zeitformat: HH:MM:SS

„Mitteilung“ = Text (Combobox (editierbares Feld mit Liste) Das Feld nicht mit in das Eingabeformular integrieren.

Für das DB-Feld „Mitteilung“ wird eine Formel notwendig. Diese wird untergebracht in: „Formel“ (definiert das Feld als Rechenfeld):"

Wir wollen erst dann mahnen, wenn jemand an den Minuten schraubt:

IF MINUTE(geändert) !== MINUTE(Anmelden) THEN Mitteilung + ‚Achtung!‘

Wir wollen erst dann mahnen, wenn jemand an der Stunde und den Minuten schraubt:

IF HOUR(geändert) > HOUR(Anmelden) AND MINUTE(geändert) !== MINUTE(Anmelden) THEN Mitteilung + ‚Achtung!‘

Meine Meinung zum Thema:

Das alles kann keine DB-Rechtevergabe ersetzen.

Ich bin auch gegen zu viele DB-Tabellen, insbesondere dann, wenn diese das kitten sollen, was zurzeit nicht verfügbar ist …

Einen Datum/Zeitstempel gibt es noch nicht in papyrus Office, Autor.

Wenn Deine Anwender sich anmelden müssen, könnte auch über die Umgebungsvariable „USERNAME“ (xp) mit Mitarbeiternamen gearbeitet werden. (Eigenschaften - Variablen - „Zugriffsart:“ Auswahl "Umgebungsvariable (von den

Systemeinstellungen gelesen)". Somit könnte eventuell sichergestellt werden, dass auch dann eine Info generiert wird, wenn der Müller - dem Mayer eins auswischen will …

Man kann eine weitere DB-Tabelle „Stempeluhr_Abmelden“ erstellen.

Wenn Du mit papyrus Autor arbeitest könntest Du ein DB-Feld auch vor Überschreiben schützen, indem Du es vor

(ungewollter) Veränderung schützt. Öffne das Eingabeformular zum bearbeiten. Selektiere das DB-Feld. Und dann: Menü

„Zeichen“ - „Textstile“ - „perfekt/geschützt“. Das ist aber keine reine BASE-Funktion - hilft aber etwas.