Auswertung von dynamischer Mehrfachauswahl
Hallo zusammen,
ich habe ein Problem bei der Auswertung von dynamischen Mehrfachauswahlfeldern. Angenommen ich habe zwei Tabellen: Personen, die alle Personen enthält und Proben, die verarbeitete Proben enthält. In der Probentabelle werden Name der Probe, Datum und Anzahl festgelegt. Mittels eines dynamischen Mehrfachauswahlfelds (Verarbeiter) wird ausgewählt wer die Proben verarbeitet hat. Die Tabellen sind nicht verknüpft.
Folgendes möchte ich nun in der Personentabelle angezeigt bekommen: Summe der Anzahl, die jede Person verarbeitet hat.
Dafür habe ich ein neues Feld (Summe Anzahl) in der Personentabelle erstellt und folgenden Code benutzt:
let v1 := text(this);
let v2 := sum((select Proben)[text(numbers(Verarbeiter)) = v1].Anzahl);
v2
Das funktioniert auch, wenn als Verarbeiter nur eine Person ausgewählt wurde. Bei mehreren Personen aber nicht mehr, weshalb z.B. die Summe bei Sabrina und Peter in dem Beispiel nicht stimmen..
Weiß jemand eine Lösung wie ich den Code anpassen kann, damit auch bei Mehrfachauswahl korrekt gerechnet wird?
Dankeschön & viele Grüße,
Schluri
9 Antworten
-
Hallo,
let v1 := text(this);
let v2 := sum((select Proben)[contains(text(numbers(Verarbeiter)),v1)].Anzahl);
v2
-
Klasse, vielen Dank!
-
Hallo nochmal,
ich hab mal ein paar mehr Datensätze eingefügt und dann zeigt sich, dass die Zuordnung nicht eindeutig ist.. Wenn z.B. Teile von Nummern öfter vorkommen, dann stimmt die Berechnung nicht mehr. Z.B. kommt die Nummer von Herbert (1) auch in Olafs Nummer (15) vor, weshalb die Summe von Herbert dann nicht korrekt ist. Kann man das vielleicht auch ohne den text() Befehl lösen und direkt mit der Nr. arbeiten?
-
bei "normalen" Mehrfachauswahlfeldern würde ich auf chosen() verweisen - das funktioniert aber bei den dynamischen leider nicht.
Tatsächlich hab' ich mich selbst noch nicht wirklich mit den dynamischen (Mehrfach-)Auswahlfeldern beschäftigt, aus der Hüfte kann ich gerade keine Lösung bieten.
Vielleicht hilft Dir aber diese Thread bei der Problemlösung weiter:
lg, Torsten
-
Hallo Schluri, versuch's mal so:
let me := number(this);
sum((select Proben where chosen(Verarbeiter, me)).Anzahl)
-
Öhm, lt. Referenz geht chosen(), wie gesagt, mit DMAF nicht...?
-
Stimmt, Torsten, die Abfragemöglichkeit per chosen() wurde tatsächlich erst vor einigen Monaten hinzugefügt. Deshalb ist der Beitrag, den du verlinkt hast, hinsichtlich der Auswertung nicht mehr aktuell (der Rest schon).
-
Danke aber für den Hinweis. Ich habe den betreffenden Satz in der Referenz-DB geändert ("Funktioniert jetzt auch mit ...").
-
Hallo!
Cool, mit der Formel von planox.pro funktionierts. Danke euch!
Content aside
- vor 3 JahrenZuletzt aktiv
- 9Antworten
- 366Ansichten