0

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

 

PersonenProben

9 Antworten

null
    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    let v1 := text(this);
    let v2 := sum((select Proben)[contains(text(numbers(Verarbeiter)),v1)].Anzahl);
    v2

    • Schluri
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Klasse, vielen Dank!

    • Schluri
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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?

     

    PersonenProben

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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:

    https://ninox.com/de/forum/technische-hilfe-5ab8fe445fe2b42b7dd39ee8/infos-zu-den-neuen-dynamischen-auswahlfeldern-60636af13babc62c12b257a4?post=60636af13babc62c12b257a5&page=0

     

    lg, Torsten

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Schluri, versuch's mal so:

     

    let me := number(this);
    sum((select Proben where chosen(Verarbeiter, me)).Anzahl)

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Öhm, lt. Referenz geht chosen(), wie gesagt, mit DMAF nicht...?

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    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).

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke aber für den Hinweis. Ich habe den betreffenden Satz in der Referenz-DB geändert ("Funktioniert jetzt auch mit ...").

    • Schluri
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo!

    Cool, mit der Formel von planox.pro funktionierts. Danke euch!