unique() und create()
Hallo Zusammen,
ich habe noch einmal eine Frage mit der Bitte um eure Ideen:
Meine Anwesenheitsliste soll - ideal für Corona-Zeiten - nun auch potentielle Infektionswege nachvollziehen können. Daher brauche ich in meiner Anwesenheitsliste nun auch die zugeordneten Trainer.
let me := this;
let myC := (select Aufgaben where Rolle like "Trainer Stützpunkt" and contains(concat(me.'DHB-Kader'), text('Stützpunkt-Kader')) = true and Status like "bis heute");
for i in myC do
let myA := (create 'Anwesenheit Trainer');
myA.(Veranstaltung := me);
myA.(Teilnehmer := i.Personen)
end
Durch meinen contains(concat()) Befehl vergleiche ich ein Mehrfachauswahlfeld mit einem Auswahlfeld und gucke, ob die Kader-Bedingungen stimmen. Die Tabelle "Aufgaben" weist in solch einem Auswahlfeld meinem Trainer immer einen Kader zu. Grundsätzlich kann es aber sein, dass dieser Trainer für mehrere Kader zuständig ist, es also nei Mehrfachauswahl von "DHB-Kader" auch mehrere Treffer in "Stützpunkt-Kader" für die gleiche Person gibt. ich suche nun nach der richtigen Position für den Befehl unique(), denn ich möchte, dass in der Tabelle der Trainer nur einmal erscheint. Ich habe schon versucht das unique() an alle möglichen Stellen zu setzen - bisher ohne Erfolg, denn ich bekomme weiterhin doppelte Einträge, wenn der Trainer für mehrere Kader zuständig ist die bei der Mehrfachauswahl gewählt wurden.
Ich freue mich auf euren Rat!
LG
Stephan
6 Antworten
-
Hallo Stephan,
---
let myC := (select Aufgaben where Rolle like "Trainer Stützpunkt" and contains(concat(me.'DHB-Kader'), text('Stützpunkt-Kader')) = true and Status like "bis heute");
for i in unique(myC.Personen) do
let myA := (create 'Anwesenheit Trainer');
myA.(Veranstaltung := me);
myA.(Teilnehmer := i.)
end
---
Leo
-
Danke Leo, genial!
Falls dies hier jemand irgendwann über die Suche findet: der Punkt hinter dem letzten "i" und vor dem "end" muss noch weg, dann funktioniert es perfekt!!!
LG -
Hallo Zusammen,
ich habe nun noch eine Stelle, an der mein "unique" nicht klappen will. Ausgangssituation: Ich habe in der Tabelle "Sichtung" eine Verknüpfung zur Tabelle "Trainingseinheiten", die in der Tabelle "Sichtungung" dann "Verknüpfte Einheiten" heißt. In "Trainingseinheiten" bzw. hier "Verknüpfte Einheiten" ist wiederum eine Verknüphung als Anwesenheitsliste mit Spielern aus der "Spielerdatenbank". Für jeden anwesenden Spieler (wenn Ja/Nein-Feld "Anwesend"=ja) gibt es neben der Anwesenheitsliste in "Trainingseinheiten" zudem eine individuelle Bewertung der Trainingseinheit in der Tabelle "Bewertungen". In der Tabelle "Sichtung" will ich nun die anwesenden Spieler alles verknüpften Einheiten in die Untertabelle "Sichtungsteilnehmer" anzeigen lassen, um dann im zweiten Schritt die Bewertungen addieren zu können, die sich aus den teilgenommen Trainingseinheiten ergeben, die zu einer Sichtung gehören. Die Befehlsschaltfläche "Sichtung beenden" sieht für mich bisher folgendermaßen aus, jedoch bekomme ich immernoch doppelte Einträge...let me := this;
for i in 'Verknüpfte Einheiten' do
for ii in Bewertungen do
let mySP := ii.Spielerdatenbank;
for iii in unique(mySP) do
let x := (create Sichtungsteilnehmer);
x.(Sichtung := me);
x.(Spielerdatenbank := mySP)
end
end
end -
Hallo Stephan,
Ich würde es so versuchen:
---
l
et me := this;
let myTeilnehmer:= 'Verknüpfte Einheiten'.Anwesenheitsliste[Spielerdatenbank.Anwesend=true].Spielerdatenbank;
for i in unique(myTeilnehmer) do
let x := (create Sichtungsteilnehmer);
x.Sichtung := me;
x.Spielerdatenbank := i
end
---
wobei ich mir nicht sicher bin ob ich die Rolle der Tabelle "Anwesenheitsliste" richtig verstanden habe.
Leo
or ii in Bewertungen do
let mySP := ii.Spielerdatenbank;
for iii in unique(mySP) do
let x := (create Sichtungsteilnehmer);
x.(Sichtung := me);
x.(Spielerdatenbank := mySP)
end
end
end -
Ich weiß nicht, wie diese Kopie nach Leo entstanden ist. Also nur
let me := this;
let myTeilnehmer:= 'Verknüpfte Einheiten'.Anwesenheitsliste[Spielerdatenbank.Anwesend=true].Spielerdatenbank;
for i in unique(myTeilnehmer) do
let x := (create Sichtungsteilnehmer);
x.Sichtung := me;
x.Spielerdatenbank := i
endLeo
-
super, danke Dir! Klappt!
Content aside
- vor 4 JahrenZuletzt aktiv
- 6Antworten
- 945Ansichten