Zeitfenster für weitere Einträge sperren
Über folgende Funktion befülle ich eine Untertabelle mit Terminen:
let my := this;
let P := Projekte;
let myTermin := appointment(datetime(Datum + Von), Bis - Von);
let myVon := start(myTermin);
let myBis := endof(myTermin);
if Datum = null or Von = null or Bis = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
let new := (create Termine);
new.(Termin := myTermin);
new.(ToDos := my);
new.(Projekte := P);
new.(Status := 1)
end
Nun möchte ich gerne eine Funktion hinzufügen, um zu prüfen ob der Termin bereits anderweitig verplant wurde. Ist das Zeitfenster verfügbar, wird eingetragen, wenn nicht dann
alert("Es gibt Terminüberschneidungen!")
Wie mache ich das? Vielen Dank!
3 Antworten
-
Hallo Reinhard,
Ohne geprüft zu haben:---
let my := this;let P := Projekte;let myTermin := appointment(datetime(Datum + Von), Bis - Von);let myVon := start(myTermin);let myBis := endof(myTermin);if Datum = null or Von = null or Bis = null thenalert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")elseif cnt(select Termine [not(myBis<start(Termin) or myVon>endof(Termin))])!=0 thenalert("Es gibt Terminüberschneidungen!")elselet new := (create Termine);new.(Termin := myTermin);new.(ToDos := my);new.(Projekte := P);new.(Status := 1)endend---
Leo
-
Funktioniert genial, Leo. Durch einen kleinen Zusatz kann ich auch noch den Sachbearbeiter prüfen "ausgeführt von" lassen.
let my := this;let P := Projekte;let myTermin := appointment(datetime(Datum + Von), Bis - Von);let myVon := start(myTermin);let myBis := endof(myTermin);let myC := my.'ausgeführt von';if Datum = null or Von = null or Bis = null thenalert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")elseif myC = 0 thenalert("Dein Team ist unvollständig, bitte lege eine ausführende Person fest.")elseif cnt((select Termine)[not (myBis < start(Termin) or myVon >= endof(Termin)) and myC = 'ausgeführt von']) != 0 thenalert("Es gibt Terminkonflikte bei der ausführenden Person.")elselet new := (create Termine);new.(Termin := myTermin);new.(ToDos := my);new.(Projekte := P);new.(Status := 1)endendendSchön ist auch, dass die Prüfung unabhängig vom Projekt erfolgt, dh. immer sobald der Kontakt verplant ist, kommen entsprechende Hinweise.
Der Export einer .csv Datei klappt auch schon um die Termine in eigenständige Google Calender zu importieren und so Kalender zu syncen.
Besten Dank für diese großartige Software und das tolle Forum!
-
Hallo zusammen,
bei mir funktioniert das irgendwie nicht. Ich kann mir aber nicht ganz erklären warum. Bei mir kommt der alert immer, egal ob ein Termin um die Zeit ist oder nicht, selbst an Tagen, wo gar kein Termin ist. Woran könnte das liegen?
Fahrdauer := time(number(gcode.result.first(rows).first(elements).duration.value) * 1000);
Abholzeit := if Fahrdauer != null then
Ankunftszeit - Fahrdauer - 300000
end;
let myStart := datetime(Datum, Abholzeit);
let myEnd := myStart + Fahrdauer + 300000 + Wartezeit;
let my := this;
let myTermin := appointment(datetime(Datum + Abholzeit), myStart + Fahrdauer + 300000 + Wartezeit);
let myVon := start(myTermin);
let myBis := endof(myTermin);
if Datum = null or Abholzeit = null or Ankunftszeit = null then
alert("Es fehlen leider noch Werte, bitte eingeben: DATUM, VON, BIS")
else
if cnt((select Fahrten)[not (myBis < start(Termin) or myVon > endof(Termin))]) != 0 then
alert("Es gibt Terminüberschneidungen!")
else
alert("Nix");
Termin := appointment(myStart, myEnd)
endIch habe versucht, die Funktion mit meinem bisherigen Code zu "verheiraten", habe aber den Fehler nicht gefunden. Mit der bisherigen Funktion wurde aus einem Datum und zwei Zeiten der Termin erzeugt. Über Hilfe würde ich mich sehr freuen.
Content aside
- vor 3 JahrenZuletzt aktiv
- 3Antworten
- 375Ansichten
