Frage zur Berechnung von Zeiträumen
Moin zusammen,
ich suche eine Möglichkeit, die es bei einem so flexiblen Werkzeug wie Ninox sicherlich gibt, einen Zeitraum abzufragen und eine AKtion daraus auszuleiten.
Gegeben ist eine DB mit einem Dateum, z. B. 25.5.2010
Ferner eine DB mit folgendem Aufbau:
Jahr - Periode - Datum Anfang - Datum Ende
2010 - Sommer - 1.5.2010 - 10.9.2010
Mein Ziel ist anhand des Datums in der ersten Tabelle in der zweiten zu schauen in welcher Periode das angegeben Datum liegt.
Dann soll in die erste Tabelle der Wert aus dem Feld "Periode" und "Jahr" in ein Feld zusammen zurück gegeben werden.
Ziel ist es anhand des Datums die Fahrplanperiode als "Sommer 2010" in das ersten DB zu erhalten.
Wie lässt sich das umsetzen?
Vielen Dank und schöne Grüße
Ulrich
4 Antworten
-
Moin Ulrich, das ginge z. B. mit einem Funktionsfeld namens 'Fahrplanperiode' (o. ä.) und folgendem Code:
let myDatum := Datum;
let FPP := first(select TABELLE2 where 'Datum Anfang' <= myDatum and 'Datum Ende' >= myDatum)
FPP.Periode + " " + FPP.Jahr
Diese Berechnung wird dann allerdings immer wieder durchgeführt. Wenn es also in erster Linie um zurückliegende Daten geht, dann sollte man den ermittelten Wert lieber per Trigger oder Button in ein Datenfeld schreiben.
-
Moin,
vielen Dank, das klappt.
Eine Frage noch, wie erreiche ich es, dass das berechnete Feld leer blaibt wenn im Feld Datum in der ersten DB kein Datum steht?
In der jetzigen Form wird immer der letzte Datensatz aus der zweiten DB genommen.
Danke & Gruß
Ulrich
-
Moin,
if Datum then
let myDatum := Datum;
let FPP := first(select TABELLE2 where 'Datum Anfang' <= myDatum and 'Datum Ende' >= myDatum)
FPP.Periode + " " + FPP.Jahr
else
""
end
lg Torsten
-
Einfach ne Abfrage davorsetzen, ob das Feld leer ist ("if Datum" ist die Kurzform von "if Datum != null"):
if Datum != null then
let myDatum := Datum;
let FPP := first(select TABELLE2 where 'Datum Anfang' <= myDatum and 'Datum Ende' >= myDatum)
FPP.Periode + " " + FPP.Jahr
end
Man kann auch noch eine zweite Abfrage einbauen für den Fall, dass der gesuchte Datumswert nicht exisitiert:
if Datum != null then
let myDatum := Datum;
let FPP := first(select TABELLE2 where 'Datum Anfang' <= myDatum and 'Datum Ende' >= myDatum)
if FPP then
FPP.Periode + " " + FPP.Jahr
else
"Datum nicht gefunden!"
end
end
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1285Ansichten