0

Aktivierte Radio Buttons eines dynamischen Mehrfachauswahlfeldes einer Untertabelle zählen

Hallo Profis,

ich habe 3 Tabellen  "Kurs", "Klassenbuch"  "Teilnehmer*innen"

Teilnehmer*innen zu Kurs haben N:1 Verknüpfung (jeder Teilnehmer kann einem Kurs zugeordnet werden), Klassenbuch ist eine Untertabelle von Kurs (siehe Bild).

In der Tabelle Klassenbuch gibt es ein dynamisches Mehrfachauswahlfeld mit dem Namen "Verspätung 15 - 60 Minuten" dieses enthält den Code:

Kurs.'Teilnehmer*innen'

und zeigt mit alle Teilnehmer*innen des Kurses als Radio Buttons an. Hier kann man nun ankreuzen wer zu spät kommt.

Ziel ist es, in der Tabelle Teilnehmer*innen ein Formelfeld einzufügen, welches mir die Anzahl der angehakten Einträge für den jeweiligen Teilnehmer zeigt, der gerade in der Tabelle ausgewählt ist. In einem Zwischenschritt habe ich in der Tabelle Klassenbuch ein Formelfeld mit dem Code:

let selected := "#" + replace(concat(numbers('Verspätung 15 - 60 Minuten')), ", ", "#") + "#";count(Kurs.'Teilnehmer*innen'[contains(selected, "#" + number(Nr) + "#")])

eingefügt. Dieses zeigt mir nun die Anzahl der angehakten Felder an. Versuche ich nun dieses Modell auf die Tabelle Teilnehmer*innen zu übertragen mit:

let me:= number(this)let selected := "#" + replace(concat(numbers(Kurs.Klassenbuch.'Verspätung 15 - 60 Minuten')), ", ", "#") + "#";count(Kurs.'Teilnehmer*innen'[contains(selected, "#" + number(Nr) + "#")]and = me)

scheitert es daran, dass ich die Meldung bekomme, dass die Funktion numbers nicht definiert sei. Wo ist mein Denkfehler?

4 Antworten

null
    • Ralf_Kircheis
    • vor 8 Monaten
    • Gemeldet - anzeigen

    Ersetze ich "numbers" durch "number" gibt es keine Fehlermeldung mehr. Aber das Ergebnis ist falsch.

    • mirko3
    • vor 8 Monaten
    • Gemeldet - anzeigen

    Hallo Ralf. Hier mal mein Vorschlag. Wenn Du nur wissen willst, ob derjenige in dem verknüpften Kurs gefehlt hat, dann müßte es so heißen:

    let me := number(this);
    contains(numbers(Kurs.'Verspätung 15 - 60 Minuten'), me)
    

    Wenn Du aber die Übersicht über alle Kurse haben willst, mußt Du mit select() arbeiten.

    let me := number(this);
    cnt((select Kurs)[contains(numbers('Verspätung 15 - 60 Minuten'), me)])
    

    Mirko

      • mirko3
      • vor 8 Monaten
      • Gemeldet - anzeigen

      Mit Brille... Leider war die Editzeit vorbei

      let me := number(this);
      cnt((select Klassenbuch)[contains(numbers('Verspätung 15 - 60 Minuten'), me)])
      
      let me := number(this);
      contains(Kurs.Klassenbuch.numbers('Verspätung 15 - 60 Minuten'), me)
      
    • Ralf_Kircheis
    • vor 8 Monaten
    • Gemeldet - anzeigen

    @Mirko  Wie kann das so einfach sein?🤯 Hab vielen Dank fürs Augen öffnen und unterstützen. Das funktioniert großartig. 👏👏

Content aside

  • vor 8 MonatenZuletzt aktiv
  • 4Antworten
  • 51Ansichten
  • 3 Folge bereits