0

Mehrfachauswahl-Feld: Werte per Trigger zuweisen

Hallo NINOX-Begeisterte,

irgendwie stehe ich im Moment ein wenig auf dem Schlauch, was die Zuweisung von Werten in einem Mehrfachauswahlfeld per Trigger angeht. Hat jemand hier schon eine funktionierende Syntax?
Bsp. Mehrfachauswahlfeld (MFAF) mit den möglichen Einträgen A, B und C
MFAF := "A" and "B"

Besten Dank und schönes WE
Jörg

8 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Jörg,
    Versuch mal so:

    MFAF:=[1, 2]

    Die Ziffern in dem Array sind die IDs der Auswahlmöglichkeiten.

    Grüße
    Leo
    • jmbrenn_webde
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Herzlichen Dank Leo,

    so funktioniert es wie erwartet!
    Dein Wissen (und das Teilen hier im Forum) ist absolut imponierend. Wenn ich mir die Summe der Stunden vorstelle, welche ich noch vor mir habe, um auch nur einen Bruchteil Deines Könnens zu erreichen - dann muss ich doch heftig mit den Zweifeln kämpfen, ob ich wirklich mit NINOX weitermachen soll :-)... Aber die Verführung aufgrund der einfachen Tabellen- und Relationsverwaltung mit der Echtzeitsynchronisation auf ganz unterschiedlichen Plattformen von NINOX ist natürlich riesig.

    Viele Grüße aus Thüringen

    Jörg
    • Thomas
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

    Frage 1:wie kann ich es erreichen über einen solchen Trigger nur einen Wert unter mehreren zu verändern?

    Bsp. : Das MFAF bietet rot, grün oder gelb als Auswahlmöglichkeiten. Der Trigger soll aber nur grün verändern und die anderen Werte unverändert lassen.

    Frage 2:wie kann ich es erreichen über einen solchen Trigger mehrere Werte zu verändern und bestimmte unverändert zu lassen?

    Bsp. : Das MFAF bietet rot, grün oder gelb als Auswahlmöglichkeiten. Der Trigger soll aber nur grün und gelb verändern und rot unverändert lassen.

    Das bekomme ich einfach nicht hin. Hat jemand eine Lösung?

    Danke für Eure Hilfe.

    Thomas

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Thomas,

    mir ist nicht klar wie genau du di Optionen verändern möchtest. Angenommen Grün hat ID 3. Um diese (und nur diese) Option auszuschalten, kann man so schreiben:

    ---

    MFAF := for i in numbers(MFAF) do
    if i != 3 then i else 0 end
    end

    ---

    Einschalten geht anders:

    ---

    MFAF := for i in split(concat(numbers(MFAF)) + ",3", ",") do
    number(i)
    end

    ---

    bei zwei Optionen (ID 1 und 2).

    Ausschalten:

    ---

    MFAF := for i in numbers(MFAF) do
    if i != 1 and i != 2 then i else 0 end
    end

    ---

     

    Einschalten:

    ---

    MFAF := for i in split(concat(numbers(MFAF)) + ",1,2", ",") do
    number(i)
    end

    ---

    Leo

    • Thomas
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank, Problem gelöst. Ihr seid ein super Team!

    Viele Grüße

    Thomas

    • Alexander
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen, hierzu habe ich eine ergänzende Herausforderung. Am Beispiel der To-Do-Liste kann ich es ganz gut verdeutlichen:

    Ich möchte mehrere Ja/Nein-Felder durch ein Mehrfachauswahlfeld ersetzen (was gut funktioniert), aber bei der Behfehlsschaltfläche "Als Standard" (welche die vorgenommenen Einstellungen per Klick als Standard für den jeweiligen user übernehmen soll), komme ich mit den Beispielen hier im Thread nicht weiter. So sah die alte Funktion (Zuweisung der einzelnen Ja/Nein-Felder zum user) aus:

    let me := this;
    let myS := first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr));
    myS.('Prio/Status ein' := me.'Prio/Status ein');
    myS.('Mail ein' := me.'Mail ein');
    myS.('Teilen ein' := me.'Teilen ein');
    myS.('Bild/Datei ein' := me.'Bild/Datei ein');
    myS.('URL ein' := me.'URL ein');
    myS.('Telefon ein' := me.'Telefon ein');
    myS.('Adresse ein' := me.'Adresse ein');
    myS.('Archiv ein' := me.'Archiv ein');
    myS.('default' := me.'default');
    myS.('Fälligkeit in Tagen (Standard)' := me.'Fälligkeit in Tagen (Standard)');
    myS.('BC-Scanner ein' := me.'BC-Scanner ein');
    if 'Archiv ein' then
    myS.(Archivieren := me.Archivieren)
    end;
    'geändert' := false;
    Einstellungen := if Einstellungen then false else true end

    ------

    Wie kombiniere ich denn nun das neue Mehrfachauswahlfeld "Einstellungen vornehmen" mit den jeweiligen Auswahlen bzw. wie weise ich diese dem user zu? Geht das überhaupt? Birger meinte ja mal, dass die MAFs recht komplex und schwierig zu handhaben sind.

    Ich habe hier ergänzend - zum besseren Verständnis - auch mal die alten Wenn-Dann-Anweisungen aus den einzelnen JA/NEIN-Feldern für "Nach Änderungen folgendes Skript ausführen" zusammenkopiert (was so kombiniert natürlich keinen Sinn mehr für das MAF macht):

    if 'Einstellungen vornehmen' = 'Prio/Status ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Prio/Status ein' then
    'geändert' := true;
    if 'Teilen ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Teilen ein' then
    'geändert' := true;
    if 'Archiv ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Archiv ein' then
    'geändert' := true;
    if 'URL ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'URL ein' then
    'geändert' := true;
    if 'Mail ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Mail ein' then
    'geändert' := true;
    if 'Telefon ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Telefon ein' then
    'geändert' := true;
    if 'Adresse ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Adresse ein' then
    'geändert' := true;
    if 'Bild/Datei ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'Bild/Datei ein' then
    'geändert' := true;
    if 'BC-Scanner ein' != first((select 'To-do-Liste' where 'Erstellt von' = user()) order by number(Nr)).'BC-Scanner ein' then
    'geändert' := true
    end ...

    Danke für Eure Hilfe!

    • Alexander
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Achso, noch eine Ergänzung: Die Auswahlen des neuen MAF "Einstellungen vornehmen" heißen wie die einzelnen JA/NEIN-Felder zuvor: 1 bis 9 entsprechend "Prio/Status ein" bis "BC-Scanner ein" in gleicher Reihenfolge wie oben in der Funktion.

    • Alexander
    • vor 4 Jahren
    • Gemeldet - anzeigen

    ... allerdings ohne default und Fälligkeit in Tagen (Standard) ;)

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 8Antworten
  • 4204Ansichten