Base: Per Checkbox-Status Werte in anderem Feld verändern

Hallo

Datenbank mit 1 Tabelle. Darunter ein Feld mit Namen: Chroniker(Chechbox). 2. Feld mit Namen: Chr_Datum.

Ich möchte in Feld Chr_Datum das heutige Datum eintragen, wenn ich in Feld Chroniker das Häkchen setze.

Klappt so: IF Chroniker=‘ja’

THEN RETURN CURDATE

ELSE

IF Chroniker=‘nein’ THEN RETURN “”

So wird das aktuelle Datum eingetragen, wenn die Checkbox angehakt ist, es wird nichts eingetragen, wenn kein Häkchen gesetzt ist.

ABER: So wird jeden Tag das Datum aktualisiert. Ich möchte aber, dass das eingetragene Datum bleibt, wenn es kleiner als CURDATE ist.

Hat jemand eine Idee?

Gruß, Joska

Hallo Joska,

benutze statt curdate SYSDATE, dann sollte es einen festen Eintrag geben.

Viel Spaß noch

S.G.

P.S.: die Programmierung kann auch so aussehen:

IF Chroniker=‘ja’ THEN SYSDATE

//hier könnte auch schon ENDIF stehen

ELSE

+‘’

ENDIF

//dieser Teil ist nicht wirklich nötig

Hallo und Danke für die prompte Antwort.

Leider hat bei mir Sysdate den gleichen Effekt. Ich arbeite teilweise noch mit Papyrus 8! Aber da sind die Befehle,die ich nutze,auch schon vorhanden.

Gibt es in diesem Zusammenhang einen Tipp, wie ich im Rechenfeld von Feld 1 eine Zuweisung für den Inhalt von Feld 2 machen kann,in dem Sinne; wenn Feld 1 > 10 Then Let Feld 2 = Ja.

In Version 8 erhalte ich den Hinweis, dass eine derartige Zuweisung nicht geht.

Danke, Joska

In dem Fall würde ich das Rechenfeld von Feld 2 benutzen:

If Feld 1 > 10 Then 2 Else 1

Danke für die Antwort.

Die von Dir beschrieben Lösung klappt, allerdings reicht sie mir nicht. Ich möchte Feld 2 in Abhängigkeit von Feld 1 mit dem Tagesdatum füllen (die Zahlen waren nur Beispiele), aber dann soll das Tagesdatum des Erstellungstages bleiben, bis ich Feld 1 wieder zurücksetze (Checkbox aus). D.h, auch Morgen soll dort noch der 5.4. stehen, er wird aber auf den 6.4. hochgesetzt, da die Abfrage im Rechenfeld auch Morgen wieder mit ja beantwortet wird…

Vielleicht erkläre ich es nicht gut, aber ich bleibe mal dran…

LG, Joska

Hallo Joska.

Es gibt noch keinen Datum-Stempel / Zeit-Stempel, der in papyrus-BASE das Systemdatum bzw. die Systemzeit einfriert.

Steht aber meines Forums-Wissens nach (insbesondere im Zhg. mit Querverweisen) auf der Aufgabenliste.

Abhilfe bis dahin:

Füge der Datenbank ein weiteres DB-Feld „HeutigesDatum“ hinzu.

Datentyp: Datum

Voreinstellungsformel: SYSDATE

(Du musst es ja nicht mit in das Formular nehmen. In der Tabellen-Sicht könntest Du es „ausblenden“.

Vorhanden sind:

DB-Feld: „Chroniker“

CheckBox

Auswählbare Werte: 1|

DB-Feld: „Chr_Datum“

Datentyp: Datum

Formel: IF Chroniker = 1 THEN HeutigesDatum

Sollte funktionieren.

Checkbox = 1 Datum HEUTE wird angezeigt.

Ansonsten ist dieses DB-Feld LEER.

Hallo Gerd

Danke für den Tipp. Noch konnte ich es nicht testen, aber vom Verständnis her fülle ich doch das Feld 3 (heutigesDatum) einmalig mit dem heute gültigen Systemdatum, d.h.Feld 2 (Chr_Datum) wird per Checkbox von Feld 1 (Chroniker) immer mit dem einmalig automatisch gespeicherten Eintrag von heutigesDatum gefüllt.

Somit müsste in *Chr_Datum *entweder immer das gleiche (erstmalig festgelegte) Datum, oder nichts stehen. Es soll aber jedesmal, wenn die Checkbox Chroniker wahr ist, das aktuell gültige Systemdatum in Chr_Datum stehen.

Oder mache ich hier einen Denkfehler?

Danke, Joska

Hallo Joska.

Wird ein neuer Datensatz erzeugt, so speichert das DB Feld “HeutigesDatum” das Systemdatum.

Es ändert sich nicht. Das ist normales Verhalten. Es wird benötigt, damit Du mit der CheckBox eben dieses gespeicherte Datum im DB-Feld “Chr_Datum” ein- bzw. ausblenden kannst.

Mehr leistet dieser Ansatz nicht.

Einen Tag später wird bei aktivierter CheckBox das Datum Gestern (Ehemals Heute) gesetzt.

Und das willst Du offenbar (auch) nicht.

**Dann verabschiede Dich von der “CheckBox-Methode”.**Oder bist Du bereit das DB-Feld “HeutigesDatum” als Auswahlfeld umzugestalten?

Als einziger Wert sollte das Wort ‘HEUTE’ auswählbar sein.

Die Auswahl hat zur Folge, dass Du relativ rasch das HEUTE setzen könntest und dann in die CheckBox klickst.

Naja …

*Redundanzfrei ist das Ganze auch nicht.

Einmal wird das HEUTE-Datum im DB-Feld "“HeutigesDatum” angezeigt, ein anderes Mal begegnet

es uns im DB-Feld “Chr_Datum”.*

Genau, dass ist das Problem, die Idee mit der Checkbox sollte genau diese Redundanz vermeiden, da derartige Auswahlen an mehreren Stellen im Formular jeweils Zeitstempel verfügbar machen sollen. Schade, wenn es (so? oder gar) nicht geht.

Liebe Grüße, Joska

Lieber Joska,

mich interessierte das Problem. Ich habe mir überlegt, ob es möglich ist, selbst einen “Zeitstempel” mit den Mitteln von Papyrus Base zu erzeugen. Ich konnte es nicht.

Vielleicht hilft Dir der umgekehrte Weg doch als pragmatische Lösung:

Statt eine Checkbox anzuklicken, um den Eintrag “JA” zu erzeugen, ein Datumfeld zu nutzen, in dem Du dann das aktuelle Datum einträgst, und dann ein Textdatenfeld anlegen, dass dann automatisch das “Ja” erzeugt. If Valid(Chr_Datum) then ‘JA’

Gruß

Markus

Wie wäre es mit

IF (Chroniker=‘ja’ AND Chr_Datum=LEER) THEN SYSDATE

ELSE

IF Chroniker=‘nein’ THEN RETURN “”

Es wird nicht nur die Checkbox abgefragt, sondern auch, ob im Datumsfeld schon etwas drin steht. Das Datum wird nur überschrieben, wenn die checkbox markiert wird und das Datum noch nicht eingetragen wurde.

P.S: Ich bin nicht sicher ob Chr_Datum=LEER syntaktisch korrekt ist. Es geht hier lediglich darum zu zeigen, dass man ach das datumfeld selbst abfragen kann.

@mm.all

…so klappt es leider nicht, da ich in diverse Felder Datum-Einträge vornehmen muss und dies sooo gerne automatisiert hätte. Trotzdem danke fürs Mitdenken.

@bmulrich

… klappt bei mir leider nicht, es findet kein Eintrag in das Datumfeld statt. Vielleicht habe ich auch einen kleinen Tuck drin, muss nochmal in Ruhe gucken.

Ich hatte einen ähnlichen Ansatz, der aber zu einem Zirkelbezug geführt hatte und dann wurde es laaaaangsam :wink:

LG, Joska