Ahoi, kann Ninox auf Terminkollisionen prüfen bzw hinweisen ?
... und klar, wenn ja, wie ?
lg, Matthias
11 Antworten
-
ja klar, innerhalb der Datenbank...
Welchen Namen hat die Tabelle, die Felder?
-
die Tabelle heisst Materialdispo
die Felder:
Anzahl; Artikel;Baustelle;Start;Ende
-
if Start != null and Ende != null then
let ASD := Start;
let BSD := Ende;
let DDD := 0;
count(select 'Materialdispo' where (ASD > 'Start' and ASD < 'Ende' + DDD or BSD + DDD > 'Start' and BSD < 'Ende' or ASD <= 'Start' and BSD >= 'Ende')) = 0;end;
-
und hier trägst Du den Code ein, bei Dir in den Felder Start und Ende
die Funktion gibt Wahr oder Falsch zurück..., kann man dann noch belibig mit Farben oder so weiter gestallten
-
Wenn du Eine App benutzt dann kann die Lösung so aussehen:
---
l
et my := this;
if Start and Ende then
let myTab := (select Materialdispo)[Nr != my.Nr and (Start > my.Start and Start <= my.Ende or Ende >= my.Start and Start < my.Ende)];
if myTab then
alert("Terminkollision" + "
" + join(myTab.(Artikel + " " + Baustelle + " " + Start + "-" + Ende), "
"))
end
end
---
Die Formel solltest du als Trigger nach Änderung bei Start UND bei Ende eindtragen.
Wenn du mit Webversion oder Server arbeitest, kann man dort keine Alerts als Trigger erzeugen. Dann entwerder die Terminfelder löschen oder ein Textfeld mit den Ergebnissen befüllen.
Leo
-
ein Träumchen !
tausend Dank
-
sorry, wie kann ich filtern, daß die Meldung nur erscheint, wenn es um den gleichen Artkel geht ?
-
let my := this;
if Start and Ende then
let myTab := (select Materialdispo)[Artikel=my.Artikel and Nr != my.Nr and (Start > my.Start and Start <= my.Ende or Ende >= my.Start and Start < my.Ende)];
if myTab then
alert("Terminkollision" + "
" + join(myTab.(Artikel + " " + Baustelle + " " + Start + "-" + Ende), "
"))
end
end---
Leo
-
.... Der Artikel kommt aus ner verknüpfung ... (03 Artikel; hab das unterstrichene eingesetzt),
weil Fehlermeldung "Eine Tabellenspalte wurde nicht gefunden ...." ??? - die Fehlermeldung bleibt aber ...
let my := this;
if Start and Ende then
let myTab := (select Materialdispo)['03 Artikel'.Bezeichnung =my.Artikel and Nr != my.Nr and (Start > my.Start and Start <= my.Ende or Ende >= my.Start and Start < my.Ende)];
if myTab then
alert("Terminkollision" + "
" + join(myTab.(Artikel + " " + Baustelle + " " + Start + "-" + Ende), "
"))
end
end -
let my := this;
if Start and Ende then
let myTab := (select Materialdispo)['03 Artikel'=my.'03 Artikel' and Nr != my.Nr and (Start > my.Start and Start <= my.Ende or Ende >= my.Start and Start < my.Ende)];
if myTab then
alert("Terminkollision" + "
" + join(myTab.(Artikel + " " + Baustelle + " " + Start + "-" + Ende), "
"))
end
end -
danke jetzt ist gut ;-) war noch ne Kleinigkeit in Zeile 7
let my := this;
if Start and Ende then
let myTab := (select Materialdispo)['03 Artikel' = my.'03 Artikel' and Nr != my.Nr and (Start > my.Start and Start <= my.Ende or Ende >= my.Start and Start < my.Ende)];
if myTab then
alert("Terminkollision" + "
" + join(myTab.('03 Artikel'.Bezeichnung + " " + Baustelle + " " + Start + "-" + Ende), "
"))
end
end
Content aside
- vor 5 JahrenZuletzt aktiv
- 11Antworten
- 3277Ansichten