0

dynamisches Auswahlfeld zählen

Hallo in die Runde,

ich komme leider nicht weiter und bitte um eure Hilfe.

Folgende Situation - ich habe vier Tabellen

Tabelle1 - Tabelle2 - Tabelle3 - daf (dient für das DAF in Tabelle3)

in Tabelle1 habe ich ein Formelfeld, welches aus Tabelle3 die Auswahl zählt.

Nun möchte ich aber, das nur die Auswahl gezählt (im Formelfeld aus Tabelle1) wird, wenn ein Ja ausgewählt ist, bzw. die DatensatzNr. 1.

Ich habe die Lösung bestimmt schon irgendwo in meiner DB stehen oder zumindest ein Script, aus dem ich die Lösung irgendwie herleiten könnte, aber ich komme einfach nicht darauf.

Ich habe hierzu die Beispieldatenbank beigefügt.

Vielen Dank schon mal.

Gruß

Kruna

9 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Vielleicht so?

    cnt(Tabelle2.Tabelle3[DAF = 1])
    
      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      genauso!!!😂  Das Leben kann manchmal so einfach sein.

      Ich zeige besser nicht hier öffentlich mit welchen 'Konstrukten' ich es bisher versucht habe. Ich habe 'um zig Ecken' gedacht, sodass ich schon einen Knoten im Hirn hatte.

      Tausend dank!!👍

      Gruß

      Kruna

    • Kruna
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich möchte das Thema nochmal kurz aufgreifen, weil ich mir mal wieder die Zähne ausbeiße.

    Ich habe nun im meinem workflow festgestellt, dass ich eine Sache nicht beachtet habe und zwar habe ich in Tabelle 3 noch ein Auswahlfeld.

    Wenn 'Es'  gewählt ist

    cnt(Tabelle2.Tabelle3[DAF = 1])*1

    und wenn 'Ds' gewählt ist

    cnt(Tabelle2.Tabelle3[DAF = 1])*2

    berechnet werden.

    Ich habe versucht, so zu lösen:

     

    let myNum := if Tabelle2.Tabelle3.text(Auswahl) = "Es" then
            1
        else
            2
        end;
    cnt(Tabelle2.Tabelle3['Auswahl (dynamisch)' = 1]) * myNum

     

    Aber anstelle von 2 kommt 4 raus.

    Ich habe nochmals dazu die BeispielDB beigefügt.

    HAt jemand eine Idee, wo der Fehler liegen könnte?

    Vielen Dank.

     

    Gruß kruna

      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Servus!

      Das kann so nicht funktionieren, da der Bezug zu einem konkreten Datensatz fehlt.

      Diese Konstruktion (let myNum := if Tabelle2.Tabelle3.text(Auswahl) =....) liefert als Ergebnis in diesem Fall ( = 3 Datensätze in Tabelle 3) als Ergebnis "Es,Es,Ds"

      Kann man testen mit...

      let myNum := if Tabelle2.Tabelle3.text(Auswahl) = "Es,Es,Ds" then
              1
          else
              2
          end;
      "let myNum liefert: " + myNum

      und das liefert dann...

      ...führt aber leider auch nicht zum gewünschten Ziel der Übung, die sich mir allerdings auch noch nicht wirklich erschließt. Was genau soll da in Tabelle 1 dargestellt werden ?!?

      Grüße

      HF

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo Horst, vielen Dank für Deine Hilfe.

      In Tabelle 1 sollen alle Datensätze gezählt werden, die in Tabelle 3 im DAF ein Ja stehen haben.

      Das hat ja auch mit

      cnt(Tabelle2.Tabelle3[DAF = 1])

      funktioniert.

      Ich hatte aber nicht bedacht, dass das Auswahlfeld Es/Ds auch noch 'zählen' soll, eben bei Auswahl 1 = *1 und bei Auswahl 2 =   *2

       

      Gruß Kruna

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Vielleicht so?

      let myZ1 := cnt(Tabelle2.Tabelle3[DAF = 1 and Auswahl = 1])
      let myZ2 := cnt(Tabelle2.Tabelle3[DAF = 1 and Auswahl = 2]) * 2
      myZ1 + myZ2
      • Horst_Fertig
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Servus!

      Da packe ich doch meinen gerade angedachten Ansatz für eine Lösung gleich wieder in "Ablage P" Ich denke, die Lösung hier passt ja schon wie die Faust auf's Auge (und ist kürzer, als es meine gewesen wäre).

      Kruna muss dann nur noch den eigentlichen Feldnamen eintragen...

      let myZ1 := cnt(Tabelle2.Tabelle3['Auswahl (dynamisch)' = 1 and Auswahl = 1]);
      let myZ2 := cnt(Tabelle2.Tabelle3['Auswahl (dynamisch)' = 1 and Auswahl = 2]) * 2;
      myZ1 + myZ2

      Wenn man dann mal spaßeshalber einen Wert in Tabelle 3 so ändert...

      liefert's (hoffentlich wie gewünscht)...

      Grüße

      HF

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Wahnsinn!! Tausend Dank, genauso funktioniert es - mal wieder! 👍🙂

      • Kruna
      • vor 1 Jahr
      • Gemeldet - anzeigen

      ja, das hat auch wunderbar geklappt. Auch nochmals ein Dankeschön für die Hilfe🙂