0

Prüfen ob dynamisches Mehrfachauswahlfeld ausgewählt ist und entsprechendes Feld ein- oder ausblenden

Hallo zusammen,

ich stehe mal wieder auf dem Schlauch und habe viel probiert und hier im Forum gesucht, aber ich komm einfach nicht dahinter.

Eigentlich klingt es ganz einfach:

Ich habe eine dynamische Mehrfachauswahl mit Artikelnamen (aus der Tabelle "Artikel"  mit den Spalten "Artikelname", "Kategorie")).

Sobald ich nun einen Artikel in der Mehrfachauswahl auswähle, möchte ich, dass ein Textfeld oder Zahlenfeld im Formular erscheint (das vorher ausgeblendet ist), in dem ich die Anzahl/Menge des Artikels angeben kann.

Beispiel: Ich wähle den Artikel "Reifen" in der dynamischen Mehrfachauswahl aus. Anschließend soll ein Text- oder Zahlenfeld im Formular erscheinen, das durch "Feld nur anzeigen, wenn:" angezeigt wird, in dem ich dann die Anzahl der Reifen angeben kann.

Einfaches Ansprechen über "Feld nur anzeigen, wenn:" mittels 'Artikel = text("Reifen")' oder etwas dergleichen funktioniert nicht.

Hat jemand einen Tipp? Vielen Dank! 😊

15 Antworten

null
    • ⭐ Ninox Partnerin - Kennes Digital
    • Stefanie_K
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo  ,

    mit numbers('Dynamische Mehrfachauswahl') kannst du die Nummern deiner dyn. Mehrfachauswahl auslesen. Die Nummer entspricht jeweils dem Datensatz aus deiner Quelltabelle, aus der du die Werte deiner Mehrfachauswahl holst.

    Danach musst du mit contains() prüfen, ob der richtige Wert vorhanden ist. Wichtig dabei ist, die Werte mit einem Separator zu trennen. Sonst hast du z.B. wenn du nach "2" suchst, auch Treffer bei "22" oder "231" etc.

    Siehe https://forum.ninox.de/t/q6hsbsa/tabelle-mit-dynamischen-mehrfachauswahlfeld-vergleichen#x2hsdtl

      • mirko3
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hi . Seitdem contains() jetzt auch Arrays entgegennimmt, ist die Version mit Separator nicht mehr nötig. contains(array,1) ergibt den Treffer auf 1, nicht 11, nicht 111. Gruß Mirko

      • ⭐ Ninox Partnerin - Kennes Digital
      • Stefanie_K
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ah cool, seit welcher Version ist das so? Ist wohl an mir vorbeigegangen. Vielen Dank für den Hinweis!

      • mirko3
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Seit v3.8. Siehe

      https://forum.ninox.com/t/m1habhz

      • NinoxNewbie
      • schmitz86
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Oh super! Vielen, vielen Dank, es funktioniert! Der Ausdruck mit numbers reicht mir schon für mein Vorhaben. 🙏

      • Maurice
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Oh, contains and index mit array erspart einige Workarounds. Ist die Pflege der Referenz-DB im Webinar Team durch alle möglich? Dort ist noch nichts vermerkt.

      • mirko3
      • vor 1 Jahr
      • Gemeldet - anzeigen

       So ist es zu lesen:

      Mitarbeit erwünscht

      Grundsätzlich ist die Mitarbeit an dieser Referenz aber durchaus erwünscht. Man sollte nur wissen, was man tut. Wer beispielsweise Tipp- oder Rechtschreibfehler sieht, der darf sie selbstverständlich gerne korrigieren. Auch weitere nützliche Beiträge in der Tabelle 'Praxisbeispiele' sind sehr willkommen.

      Magst Du es ergänzen? Mirko

      • Maurice
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Ich habe mal bei contains, index und createZipFile ergänzt.

      In der Referenz-DB ist vom Datentyp "any" nie die Rede (das ist mir bisher bei json-strings begegnet als Datentyp). Gerne kann jemand dort mal gegenlesen/korrigieren/ergänzen.

      Maurice

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Mhm, hab das versucht um für ein dynamisches Auswahlfeld ebenfalls die Optionen einzuschränken: 

      • die Bedingung "in use" = true funktioniert wunderbar
      • contains auf ein multiple select feld funktioniert leider nicht, wenn "recommended for" nicht nur genau 1, sondern auch 2 ausgewählt hat.
      select Einheiten where 'In use' = true and contains(['recommended for'], 1)
      

       Eigentlich sollte ich so doch prüfen können, ob option 1 ausgewählt wurde?

      • ⭐ Ninox Partnerin - Kennes Digital
      • Stefanie_K
      • vor 1 Jahr
      • Gemeldet - anzeigen

       

      Versuch es mal mit numbers():

      select Einheiten where 'In use' = true and contains(numbers('recommended for'), 1)
      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Oder mit chosen():

      select Einheiten where 'In use' = true and chosen('recommended for', 1)
      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

      funktioniert! Danke ;)

      • Dirk_Spannaus
      • vor 1 Jahr
      • Gemeldet - anzeigen

      auch diese Variante, wunderbar!

    • Horst_Fertig
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Servus!

    Könnte so funktionieren...

    ...mit "Feld nur anzeigen..." im Feld "TextSichtbarNurWenn"

     let myA := text(MeineMehrfachAuswahl);
    contains(myA, "Axt fehlt")

    oder in "ZahlSichtbarNurWenn" mit...

    let myA := text(MeineMehrfachAuswahl);
    contains(myA, "Schlauch undicht")

    ...oder eben sinngemäß mit "Reifen", etc.

    HTH

    Grüße

    HF

      • NinoxNewbie
      • schmitz86
      • vor 1 Jahr
      • Gemeldet - anzeigen

       Hallo Horst, vielen Dank für deine Hilfe, ich konnte es nun ganz simpel unter "Feld nur anzeigen, wenn" mittels "numbers('Artikel') = X lösen. Aber ich denke, dass die Angabe mit text() nochmal besser für mich ist (der Übersichtlichkeit halber).

      Vielen Dank an euch alle, ihr habt mir alle mal wieder super geholfen! 🥳