0

Mehrfachauswahl/Button dynamisch mit Werten befüllen

Hallo,

ich habe eine Mehrfachauswahl mit bestimmten Themen (Thema 1-10). Zu jedem Thema gibt es Unterthemen/Tags, die auch ausgewählt werden können. Aktuell habe ich dazu mehrere MultipleChoice-Felder angelegt, die nur sichtbar sind, wenn das spezifische Thema ausgewählt wurde. Schöner wäre es aber, nur ein Feld zu haben, das alle Unterthemen/Tags bündelt und dynamisch befüllt wird. 

Am liebsten würde ich das mit einer Tabelle oder Liste lösen, die dynamisch befüllt wird bzw. an die - je nach Auswahl der Hauptthemen - einfach über ifs immer weitere auswahlpunkte angehängt werden (append). Das scheint in Ninox aber nicht zu funktionieren und nachdem ich 10 Hauptthemen habe, ist eine kombinatorische Abfrage und jeweils vollständige Definition der spezifischen Taglisten mit ifs nicht wirklich praktikabel. 

Gibt es hier andere, praktikable Wege das zu lösen? Über weitere Tabellen etc.?
 

Über einen kurzen Input würde ich mich jedenfalls freuen :)

9 Antworten

null
    • Pushing the Boundaries of Ninox
    • Gotje_Ing
    • vor 8 Tagen
    • Gemeldet - anzeigen

    Moin,

    das Thema kann, je nach Wunsch, sehr komplex aufgebaut werden. Die Optionen könnten aus einer bzw. verschiedenen Tabellen kommen, oder einmalig "hardcoded" im Feld eingetragen werden. Unabhängig davon ist die Lösung für dein Problem kein "normales" Mehrfachauswahlfeld, sondern ein dynamisches Mehrfachauswahlfeld zu nutzen. 
    Als Datenquelle musst du dir selbst ein array of objects zusammenbauen, welches die Optionen konditionell ein bzw. ausschließt. 

    So könnte dein Array dann aussehen:
     

    [{
                id: 100,
                caption: "Auswahlgruppe 1"
            }, if contains(numbers('Mehrfachauswahl (dynamisch)'), 100) then
                {
                    id: 101,
                    caption: "Gruppe 1 - Unteroption 1"
                }
            end, {
                id: 200,
                caption: "Auswahlgruppe 2"
            }, if contains(numbers('Mehrfachauswahl (dynamisch)'), 200) then
                {
                    id: 201,
                    caption: "Gruppe 2 - Unteroption 1"
                }
            end][not null]
    

    Erweiterung mit for-Loops, order by, Datenquellen etc. sind aus deiner Anfrage gerade noch nicht ablesbar, daher nur ein minimales Beispiel.

    Wichtig, wenn man die Auswahlgruppe 1 abwählt, sind vorher angewählte Unteroptionen der Gruppe noch nicht abgewählt. Dazu muss noch ein Trigger im Mehrfachauswahlfeld eingebaut werden. Abhängig von der Datenquelle sieht der Trigger sehr unterschiedlich aus, daher kann ich hier pauschal kein Beispiel geben. 

    Wäre das grundsätzlich eine gangbare Variante? Dann könnten wir die weiter aufbauen.

      • Rafael_Sanchis
      • vor 8 Tagen
      • Gemeldet - anzeigen

       

      I'm doing a sample example. It's on the right track

      • Samuel
      • gestern
      • Gemeldet - anzeigen

       und 
      danke für euren Input. Der war schon mal sehr hilfreich und funktioniert grundsätzlich auch. Ich versuche trotzdem auch noch etwas näher an der klassischen Multi-Choice-Logik dran zu bleiben, damit ich auch Zeilen färben, filtern etc. kann
       

    • Maurice
    • vor 5 Tagen
    • Gemeldet - anzeigen

    Hallo Samuel,

    Idee: zwei Tabellen.

    Erste Tabelle Themen der Ebene 1 mit Themen 1-10;

    zweite Tabelle: Unterthemen der Ebene 2; Tabelle 2 enthält ein DMAF aus Tabelle 1. In dem DMAF legst du fest, welches Unterthema bei welchem Thema Ebene 1 angezeigt werden soll.

    Für Ebene 3 geht es so weiter mit einer dritten Tabelle

    Alternative: eine Tabelle A mit allen Themen und eine Koppeltabelle A-A, in der die Hierarchie Ober- und Unter definiert wird.

    Grüße

      • Samuel
      • gestern
      • Gemeldet - anzeigen

       und 

      danke für den Input. Ich habe 2 Tabellen angelegt (Themenfelder/Hauptkategorien und Tags/Unterkategorien). Themenfelder habe ich mit Tags verknüpft (1:N). In meinem Formular habe ich 2 DMAFs. Feld1 für die Hauptkategorien und Feld2 für die Tags.

      Beim Filtern der Tags stoße ich allerdings auf das Problem, dass ich den Rückgabewert des DMAF1 (Themenfelder) nicht verwenden kann, weil der nur numerische Werte ausgibt und mehrfache Auswahl nicht als Kombination/Liste etc. ausgibt, die mittels contains etc. abfragbar wäre, sondern als eigenen Wert (Thema 1 = 1, Thema 2 = 3, Thema1+Thema2 = 2 statt 1,3) ... jetzt hänge ich irgendwie fest und bin von den unterschiedlichen Arten, welche Syntax und Methoden bei ninox in welchem Kontext gelten, verwirrt .... könnt ihr mir hier noch einen Denkanstoß geben oder etwas genauer beschreiben, wie ihr das angehen würdet?

      danke schon im Voraus

      • Pushing the Boundaries of Ninox
      • Gotje_Ing
      • vor 22 Stunden
      • Gemeldet - anzeigen

      Moin  
      schau dir mal die Funktion numbers() an. Diese gibt dir ein Array mit den gewählten Optionen. 
      https://forum.ninox.de/t/35yh53b/numbers#topic-top

      • Maurice
      • vor 15 Stunden
      • Gemeldet - anzeigen

       im Anhang mal schnell ein Beispiel zusammen geskriptet.

      In der Tabelle Auswahl_Ebene_01 definierst du deine Optionen für DMAF, in der Tabelle Auswahl_Ebene_02 definierst du die Optionen für dein DMAF der 2. Ebene und legst fest, bei welcher Option der ersten Ebene die jeweilige Option der zweiten Ebene angezeigt werden soll.

      In der Arbeitstabelle arbeitest du dann. "Der Kniff" liegt im select Statement des zweiten DMAF, das die Optionen der zweiten Ebene anzeigt.

      Du kannst vom Prinzip das weiter herunterkaskadieren auf weitere Ebenen.

      Grüße Maurice

      • Samuel
      • vor 15 Stunden
      • Gemeldet - anzeigen

       

      hallo, danke für den hinweis. mit numbers hats perfekt funktioniert. 

    • David_Andrejewitsch
    • vor 3 Tagen
    • Gemeldet - anzeigen

    Der Ansatz von  erscheint mir am einfachsten umzusetzen. Packe die Themen und Unterthemen in verknüpfte Tabellenstruktur. Danach kannst du das alles über ein dynamisches Auswahlfeld abfragen. Kannst auch mehrere Auswahlfelder als "Filter" benutzen. 
    Wenn im 1. Auswahlfeld Thema A ausgewählt ist, zeigt das 2. Auswahlfeld nur Unterthemen vom Thema A an. 

Content aside

  • Status Answered
  • vor 15 StundenZuletzt aktiv
  • 9Antworten
  • 95Ansichten
  • 5 Folge bereits