weekdayName als "do as server"
Hallo,
wenn ich weekdayName() innerhalb eines "do as server" ausführe, liefert es nur die englischen Wochentage zurück. Gibt es einen effizienteren Weg, das zu korrigieren als zusätzlich mit einem switch hartgecoded auf die eigentlichen deutschen Bezeichnung zu ändern, die ich ja auch bekommen würde, wenn der Befehl nicht als "do as server" läuft?
Viele Grüße
Ralf
15 Antworten
-
Hallo Ralf
Probier mal weekdayNameAllLang(DATUM) -
Hallo Uwe,
funktioniert leider nicht, obwohl in den Ninox Einstellungen (cloud) Deutsch als Sprache eingestellt ist. Innerhalb des "do as server" liefert der Befehl bei mir trotzdem englische Bezeichnungen.
VG
-
HJallo, man könnte die Wochentage als Zahl auslesen und über ein Array die deutschen Bezeichnungen zuordnen:
let myDays := ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"];
item(myDays, weekday(DATUM))
-
Sorry, war unvollständig: weekdayNameAllLang(Datum,"de")
-
Stimmt, die Variante hatte ich gar nicht auf dem Schirm. Ich sollte öfter in die Referenz schauen. ;-)
-
Hallo Axel.
Habe die Reference schon angepasst. -
Ja, eben. Da steht's schon drin. Ich hätte es also wissen können. Danke für's Aktualisieren (nicht nur in diesem Fall)!
-
Also, mit meinem Skript funktioniert es nicht. Ich poste es heute Abend hier noch. Vielleicht findet ihr den Fehler, denn ich bekomme weiterhin nur englische Begriffe
-
do as server
"
/Zeitfeld/";
let my_time := zwischen;
"
/Zeitfeld/";
let my_duration := 'Terminlänge (min)';
"
/ Dropdown mit Minutenangaben/";
let my_slots := 'Anzahl der Slots';
"
/ Zahlenfeld/";
let my_alt := 'Höhe';
let my_jump := Tandempreis;
"
/ Datumsfeld /";
let my_day := 'Am/ vom';
for i from my_time to und step number(text(my_duration)) * 60000 do
let my_record := (create 'Termin reservieren');
my_record.(Termin := appointment(my_day + my_time, time(number(text(my_duration)) * 60000)));
my_record.('Plätze' := my_slots);
my_record.('Höhe' := my_alt);
my_record.(weekdayname := weekdayNameAllLang(date(start(Termin)), "de"));
my_time := my_time + time(number(text(my_duration)) * 60000)
end
end -
Warum, weißß ich nicht.
Nachbau funktioniert:
let vStart := date(start(Termin));
do as server
for i in range(0, 1) do
let vNew := (create Tabelle2);
vNew.(WeekdayName := weekdayNameAllLang(vStart, "de"))
end
end
----------
Versuche mal im Trigger 'nach Änderung' im Terminfeld der entsprechenden Tabelle wo der neue Record erstellt wird: 'weekdayname := weekdayName(date(start(Termin))' und lösch es aus dem Script. -
Ist "weekdayname" ein Datenfeld? Ich würde keine Feldbezeichnungen wählen, die auch als Ninox-Funktion existieren. Und wo kommt "Termin" her? Wenn das Feld aus dem neu erzeugten Datensatz my_record gemeint ist, dann müsste es vermutlich heißen:
my_record.(weekdayname := weekdayNameAllLang(date(start(my_Record.Termin)), "de"));
-
Ich denke Axel's Lösung trifft zu.
-
@Uwe: ich prüfe das mal, denn in deinem Nachbau wird der Termin außerhalb vom "so as Server" erzeugt, bei mir nicht.
@planox: weekdayname ≠ weekdayName - ich prüfe Mal die Skriptanpassung
-
Nur eine weitere Idee:
my_record.(weekdayname := weekdayNameAllLang(date(start(appointment(my_day + my_time, time(number(text(my_duration)) * 60000)))), "de")); -
Guten Morgen an alle,
um dieses Thema dann abzuschließen: Uwe´s Hinweis auf den Befehl weekdayNameAllLang() war das Rätsels Lösung. Das es nicht gleich geklappt hat lag einfach daran, dass ich ein weekdayName() in einem Änderungstrigger übersehen habe.
Vielen Dank nochmal.
Content aside
- vor 3 JahrenZuletzt aktiv
- 15Antworten
- 401Ansichten