Autor Thema: Wochentage bzw. Funktion Weekday  (Gelesen 169 mal)

Offline LordMonster

  • Junior Mitglied
  • **
  • Beiträge: 53
  • Geschlecht: Männlich
Wochentage bzw. Funktion Weekday
« am: 10.02.25 - 10:51:52 »
Hallo zusammen,

ich brauche mal wieder eure Unterstützung.
Aktuell versuche ich, die Funktion @weekday zu verstehen, komme aber nicht weiter.

Was möchte ich erreichen?
Wenn im Datumsfeld "Bestellung_Datum" ein Dienstag ausgewählt wird, soll ein weiteres Feld angezeigt werden.

Mein Lösungsansatz:

Die Anzeige des zusätzlichen Feldes steuere ich über die Funktion „Absatz verbergen“.
Mithilfe von @weekday wollte ich im versteckten Feld den Wochentag oder eine entsprechende Zahl berechnen, um die Anzeige dynamisch zu steuern.
Leider klappt es bisher nicht wie geplant. Hat jemand eine Idee, wie ich das korrekt umsetzen kann?

Danke schon mal für eure Hilfe!
z.b:

var w = "";
@Weekday(Bestellung_Datum())) {
   case 1 : w = "Sunday"; break;
   case 2 : w = "Monday"; break;
   case 3 : w = "Tuesday"; break;
   case 4 : w = "Wednesday"; break;
   case 5 : w = "Thursday"; break;
   case 6 : w = "Friday"; break;
   case 7 : w = "Saturday"; break;
}

 
Könnt Ihr mir bitte kurz erklären wie ich die Formel richtig schreibe?





Offline Tode

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.893
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Antw:Wochentage bzw. Funktion Weekday
« Antwort #1 am: 10.02.25 - 11:22:14 »
OK, also Formelsprache ist das, was Du da schreibst schonmal nicht... Das was Du als CODE geschrieben hast, geht am einfachsten mit einer Liste:

Code
_wochentage := "Sunday" : "Monday" : "Tuesday" : "Wednesday" : "Thursday" : "Friday" : "Saturday";
_aktuellerWochentag := _wochentage[@Weekday(Bestellung_Datum)]
_aktuellerWochentag

Das liefert dann "Tuesday" zurück.... aber Du willst ja ein Hide-When für ein Feld erstellen, das ist viel einfacher:

Code
@Weekday(Bestellung_Datum) != 3

Dann musst Du allerdings ins "onChange"- Event des Bestellung_Datum- Feldes sowie ins "Exiting" Event sowas schreiben wie:

Code
Dim ws as New NotesUIWorkspace
Call ws.CurrentDocument.Refresh()

Damit das andere Feld auch wirklich bei jeder Änderung ein / ausgeblendet wird
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 676
  • Geschlecht: Männlich
Antw:Wochentage bzw. Funktion Weekday
« Antwort #2 am: 10.02.25 - 11:36:05 »
Du denkst zu kompliziert. Das zusätzliche Feld bekommt die Hide-When-Formel:

Code
@Weekday(Bestellung_Datum) != 3

Statt != ginge auch <>

Damit wird es immer versteckt wenn Weekday ungleich 3 ist.

Noch wichtig:
- beide Felder müssen in getrennten Absätzen stehen
- das zusätzliche Feld sollte in der Tab-Reihenfolge nach dem Datumsfeld kommen
- für Notesclients empfehle ich noch das Aktivieren des Exiting/OnChange (zweiter Eigenschafts-Tab ganz unten).
- beim manuellen Eintippen des Datums wirkt das erst nach dem Verlassen des Datumsfeldes.

HTH
Carsten

Edit: Torsten war schneller - ich lass meins trotzdem mit stehen, vielleicht hilft es ja dennoch.

Offline LordMonster

  • Junior Mitglied
  • **
  • Beiträge: 53
  • Geschlecht: Männlich
Antw:Wochentage bzw. Funktion Weekday
« Antwort #3 am: 10.02.25 - 13:06:25 »
Danke, das ist ja doch nicht so kompliziert wie ich dachte.

Leider funktioniert es nur mit folgendem Code:

_aktuellerWochentag := _wochentage[@Weekday(@Today)];

Wenn ich jedoch versuche, das Datum aus meinem Kalenderfeld zu verwenden, was der Mitarbeiter auswählen kann erhalte ich den Fehler:

Falscher Datentyp für Operation oder @Funktion: Zeit/Datum erwartet.

_aktuellerWochentag := _wochentage[@Weekday(Bestellung_Datum)];


Details:

Das Feld Bestellung_Datum ist ein normales Kalenderfeld. (Datum/Zeit
Das Ausgabefeld (Weekday) ist ein einfaches Textfeld.
Ich habe bereits verschiedene Datentypen ausprobiert, aber der Fehler bleibt bestehen.
Muss ich hier noch etwas an den Einstellungen ändern oder einen anderen Ansatz wählen?

Danke im Voraus für eure Unterstützung!

Offline Tode

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.893
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Antw:Wochentage bzw. Funktion Weekday
« Antwort #4 am: 11.02.25 - 09:03:49 »
Wenn Du ein Feld hast, das der Benutzer ausfüllt, dann muss eine Abfrage für den initial leeren Wert rein:

Code
@If( Bestellung_Datum = ""; @Return( @True ) ; "" );
_aktuellerWochentag := _wochentage[@Weekday(Bestellung_Datum)];

Die erste Zeile ist der "Break" und sorgt dafür, dass das Feld verborgen bleibt, solange kein Datum ausgewählt ist
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz