doppelte Einträge vermeiden_mit Alert drauf hinweisen
Hello zusammen,
folgendes ist mit gerade aufgefallen, wir triggern "ist anwesend" der einzelnen Mitarbeiter über ein Dashboard und den Vorgesetzten
Mitarbeiter ist ein Dynamisches Auswahlfeld die Meldung ist anwesend wird in neue Tabelle geschrieben, in der dann der MA_Name und das Buchungsdatum steht.
Neu hinzukam, wenn der Vorgesetzte einen MA Korrigieren muss in dessen Status, dass man ein Datumsfeld hat, sagt Korrektur = ja und dann wie gewohnt weiter macht.
Ich hab jetzt in der Anwesenheitstabelle gesehen, dass es möglich ist den gleichen Mitarbeiter mehrfach einzubuchen für den gleichen Tag...vermutlich würden dann auch noch andere Status gehen (Krank, Urlaub, Überstunden, etc)
Sprich ich bräuchte egtl eine Funktion, die überprüft, wurde für den Mitarbeiter an dem Tag schon eine Buchung gesetzt => wenn ja Welche und mich dann fragt soll wirklich geändert werden => dann könnte man ja auch sagen Antwortoption (Krank, Urlaub, anwesend, ...)
Schwierigkeit: durchs dynamische Auswahlfeld müsste es quasi für alle angeklickten diesen Dialog mit der abfrage einzeln und nacheinander öffnen und jeweils die unterschiedlichen Antworten pro MA Speichern.
derzeitige Formel, die die Doppeleinträge ermöglicht:
let myDate := date(if 'Korrektur Anwesenheit' = true then
Datum else today()
end);
let myArr := numbers('Anwesende _QM');
for i in myArr do
do as database '11_PS'
let new := (create Anwesenheit);
new.(Datum := myDate);
new.(Status := 1);
new.(Personen := first((select Personen)[number(Nr) = i]))
end
end;
let my := first(select 'Dash Quali');
openRecord(my, "Anwesend Team QM");
'Korrektur Anwesenheit' := null;
'Anwesende _QM' := null
5 Antworten
-
Ich kann das jetzt nicht testen, aber du könntest das (create Anwesenheit) davon abhängig machen, ob es schon einen Datensatz gibt, der deinen Kriterien entspricht, oder nicht..... also in etwa so:
for i in myArr do
do as database '11_PS'
let new := first((select Anwesenheit where Personen = i and Datum = myDate));
if not new then new := (create Anwesenheit);
new.(Datum := myDate);
... uswelse
popupRecord(Anwesenheit, new)Also einfach gesprochen:
Für jedes "i" in meinem Array lasse "new" den Datensatz aus der Tabelle "Abwesenheit" sein, mit meinem Datum und der Person "i".
Wenn "new" nix ergibt, dann ist "new" = create Abwesenheit und alles was mit "new" noch gemacht werden muss.
Wenn "new" doch etwas ergibt (else), dann mach mir den Datensatz auf... -
Ja, wie schon geschrieben, das war ohne Anspruch auf Funktion und nur ein Denkanstoß ... normalerweise versuche ich hier im Forum auch immer "copy&paste" fähige Antworten zu geben... aber manchmal wird es aus Zeitgründen eben nur ein halbgarer Lösungsvorschlag :)
Content aside
- vor 11 MonatenZuletzt aktiv
- 5Antworten
- 65Ansichten
-
3
Folge bereits