Trigger - Status nach Ablauf eines Datums automatisiert ändern
Ist es möglich nach Ablauf eines Datums per Trigger automatisiert ein Auswahlfeld/Statusfeld zu ändern?
13 Antworten
-
Hallo,
tatsächlich automatisiert nicht, wohl aber beim Öffnen der Datenbank.
lg, Torsten
-
Da ich die Datenbank fast immer auf habe keine wirkliche Option. Bleibt dann wahrscheinlich nur ein Befehlsfeld welches ich als Trigger nutze. Schade.
-
Hm, das Befehlsfeld in einem Dashboard könnte man ja nur anzeigen, wenn es relevant wäre...
-
Hallo Chris,
was du meinst ist eine Funktion, die sich "Job" nennt und auf Daten oder Zeiträume reagiert. Diese ist bereits in Arbeit und wird einer unserer kommenden Versionen veröffentlicht. ;)
Beste Grüße, Jörg
-
Ok,super. Gibt es eigentlich feste Release Zyklen für Ninox?
-
Wie lautet denn der Skript, wenn ich die Datenbank öffne? Ich habe die Statusoptionen in einem Auswahlfeld. Dann habe ich wie chris ein Ablaufdatumsfeld. Wenn dieses Datum erreicht ist soll der Status auf Abgelaufen springen.
-
Hallo Chris,
einen festgelegten Zyklus in dem Sinne gibt es nicht, aber der Zeitraum bis zum nächsten Release umfasst immer nur wenige Monate.
Gruß, Jörg
-
Hi Administrator,
die Formel könnte so aussehen (wenn 3 der Index des "Abgelaufen"-Wertes ist:
if Ablaufdatumsfeld < today() then Statusfeld := 3 end
Gruß, Jörg
-
Wenn ich dies bei "Nach öffnen der Datenbank" eingebe sagt er, dass er die Tabellenspalte "Ablaufdatum" nicht gefunden hat. Und wenn ich den Tabellenamen davor setzte also "Materialstatus.Ablaufdatum" nimmt er das nicht
lg
-
Hallo Administrator,
sorry, da hab ich wohl zu schnell getippt... in dieser Option "Nach dem Öffnen der Datenbank folgendes Skript ausführen" muss die Formel so aussehen:
for i in (select Materialstatus)[Ablaufdatum < today()] do
i.(Statusfeld := "Abgelaufen")
end;
Da du ja die ganze Tabelle durchsuchen willst, musst du das mit Hilfe einer Schleife machen.
Prinzipiell lassen sich Tabellen in dieser Option nur durch ein select ansprechen.
Gruß, Jörg
-
Da gibt es eigentlich eine pragmatische Lösung:
Du erstellst in der Tabelle (bei dir Materialstatus) eine Funktionsfeld mit folgendem Inhalt:
If Ablaufdaum < today() then
"abgelaufen"
else
"aktuell"
end;
Damit hast du dann für jeden Datensatz immer den aktuellen Status, kannst dieses Feld dann auch weiter verwenden (z.B. Gruppieren oder Filtern)
Wenn du das Ganze dann farbig und ggf. mit einem entprechenden Icon versehen darstellen willst, wird es etwas komplizierter aber ist auch machbar :)
Gruß,
Alex
-
OK, hab deinen Post nochmal gelesen - sorry - kann dir aber für deine initiale Frage auch eine Lösung anbieten.
Wenn dein entsprechendes Auswahfeld <Status> wie folgt lautet:
<Status>
(1) aktuell
(2) abgelaufen
Du nimmst auch wieder ein Funktionsfeld (wie oben beschrieben) wo du dir für jeden Datensatz den Status wie folgt berechnen läßt:
if Ablaufdatum < today then 2 else 1 end;
Das Feld benennst du dann zB <Funktion_Status>
Nun kannst du per Skript den Wert dieses Funktionsfeldes deinem Auswahlfeld zuweisen. Das kannst du dann in das globale Skript beim Öffnen der Datenbank packen:
for Materialstatus in select <Materialtabelle> do
Materialstatus.(Status := Funktion_Status);
end;Hoffe, das hilft dir jetzt weiter.
Gruß,
Alex
-
Hallo, so wie der Suppot das geschrieben hat funktioniert das super, vielen dank!
Content aside
- vor 5 JahrenZuletzt aktiv
- 13Antworten
- 3895Ansichten