0

Zwei Mehrfachauswahlfelder vergleichen

Ich habe zwei mal die gleichen Mehrfachauswahlfelder, also die auswahlmöglichkeiten sind die selben. Und ich möchte das ein Textfeld nur angzeigt wird, wenn bei beiden Mehrfachauswahlfeldern die gleichen Felder ausgewählt sind. Also mindestens einmal muss in beiden das selbe Auswahlfeld angeklickt sein. Aber wenn kein einziges mal das selbe angeklickt ist, dann soll das Feld nicht sichtbar sein. 

Mit freundlichen Grüßen

12 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Lorenz, eine Möglichkeit wäre vielleicht dies (im betreffenden Textfeld bei "Nur anzeigen, wenn"):

    let TextZeigen := false;
    if Mehrfachauswahl1 and Mehrfachauswahl2 then
        let MF1 := chosen(Mehrfachauswahl1);
        let MF2 := chosen(Mehrfachauswahl2);
        for x in MF1 do
            let myMF := x;
            for y in MF2 do
                if y = myMF then TextZeigen := true end
            end
        end
    end;
    TextZeigen = true

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Top danke funktioniert genauso wie gewollt

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

    So müsste es übrigens auch gehen:

     

    let TextZeigen := false;
    if Mehrfachauswahl1 and Mehrfachauswahl2 then
       let MF1 := chosen(Mehrfachauswahl1);
       for x in MF1 do
         if contains(concat(chosen(Mehrfachauswahl2)), x) then
             TextZeigen := true
         end
       end
    end;
    TextZeigen

     

    Ist mir bei Betrachtung des Codes gerade noch eingefallen. Nur der Vollständigkeit halber. ;) 

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Eine frage zur Textzeigen Variable weshalb funktioniert das so?

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Könnten sie mir das zweite erklären also nur die if zeile

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

    Ups, hat sich überschnitten ...

     

    Bei "Nur anzeigen, wenn" gehts ja um eine Bedingung, die erfüllt sein muss. Diese Bedingung lautet hier, dass die Variable "TextZeigen" auf "Ja" bzw "true" stehen muss (das "= true" kann man dabei weglassen). Und gesetzt wird die Variable im Code vorher.

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    also könnte es auch "Srv" heißen und muss nur am ende true sein?

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

    Das "if Mehrfachauswahl1 and Mehrfachauswahl2" bedeutet:

     

    Wenn Mehrfachauswahl1 nicht leer ist und Mehrfachauswahl2 nicht leer ist. In dieser Kurzform kann man Felder darauf abfragen, ob sie einen Inhalt haben (oder bei logischen Feldern auf "Ja" bzw. "true" stehen). Und der Vergleich macht ja nur Sinn, wenn beide Mehrfachauswahlfelder einen Inhalt haben (also mindestens eine Option ausgewählt wurde).

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke aber meinte diese Zeile : if contains(concat(chosen(Mehrfachauswahl2)), x)

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

    Ja, die Namen von Variablen sind frei wählbar, "TextZeigen" könnte also auch "Srv", "RZwoDZwo oder "HansWurst" heißen. Allerdings muss sie natürlich immer gleich heißen. In diesem Fall müsste der Name also an drei Stellen geändert werden.

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

    Ach so, sorry. Es ging um

    if contains(concat(chosen(Mehrfachauswahl2)), x) then

    Ich versuch's mal auf die Schnelle

    chosen(Mehrfachauswahl2) = Alle gewählten Optionen des Auswahlfeldes in ein Array schreiben.
    concat( ... ) = Einträge eines Arrays kommagetrennt in einem Textfeld zusammenfassen.
    contains(FELDVAR, WERT) = Überprüfen, ob Feld bzw. Variable FELDVAR den Inhalt von WERT enthält.

    Frei übersetzt:

    Wenn in den gewählten Optionen des Auswahlfeldes der Wert der Variable "x" vorkommt, dann ...

    Wobei die Variable "x" bei jedem "for"-Schleifendurchlauf den jeweiligen Wert der gewählten Optionen aus "Mehrfachauswahl1" enthält.

     

    Halbwegs verständlich?

    • Lamping & Reisig Gmbh & Co.KG
    • LuRLorenz
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ja ich kannte nur die concat funktion noch nicht. Vielen Dank

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 12Antworten
  • 2276Ansichten