0

Ersetzungen in Textfeldern

Hallo,

ich bin neu auf NINOX gestoßen und wollte mal nachhören, ob es möglich ist Ersetzungen durchzuführen. Beispiel: Ich habe aus einer anderen Datenquelle ein Feld Zutaten, in dem folgendes steht:

Wasser, Saccharose, Pflanzenfett

Jetzt möchte ich, dass Saccharose in einem neu generierten Feld ersetzt wird durch Zucker. In dem Feld soll also stehen

Wasser, Zucker, Pflanzenfett

Das ist nur ein einfaches Beispiel. In der Praxis, wären dass dann vielen vorab festgelegte Ersetzungen, die dort stattfinden sollen.

4 Antworten

null
    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Sven,

     

    'neues Feld' := replace(Zutaten, "Saccharose", "Zucker")

     

    wäre der entsprechende Code zu Deinem Beispiel - wo dieser zum Einsatz kommt (Befehlsschaltfläche, Massendatenänderung, Änderungstrigger, ...) hängt davon ab, wie und wann Du die Aktion stattfinden lassen möchtest und bleibt Dir überlassen...

     

    lg, Torsten

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Axo,

     

    wenn's mehrere Ersetzungen werden, würde ich diese verschachteln, z.B.:

     

    'neues Feld' := replace(replace(Zutaten, "Saccharose", "Zucker"), "Wasser", "H2O")

     

    lg, Torsten

    • Sven_Krupp
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke. Das hilft schon weiter. Am liebsten würde ich die Änderung automatisch haben. Also, wenn sich ein Datensatz ändert oder einer dazu kommt nachdem ich eine Export (.csv) meiner anderen Datenquelle importiert habe.

    gruß sk

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Sven,

     

    beim Ändern des Datensatzes ist kein Problem - den Code einfach bei "Nach Änderungen folgendes Skript ausführen:" entweder bei den Feld- oder den Tabelleneigenschaften platzieren. Aber Achtung: beim CSV-Import in die Tabelle werden die Änderungstrigger nicht berücksichtigt, da hilft nur eine Befehlsschaltfläche oder Consolen-Script nach Import.

     

    Falls es tatsächlich recht viele potentielle Ersetzungen gibt, wäre evtl. sogar eine Tabelle 'Ersetzungen' mit zwei Textfeldern 'Zutat' und 'Ersatz' sinnvoll. Diese könnte man quasi dynamisch pflegen und dann dieses Skript nehmen:

     

    let my := this;
    for i in (select Ersetzungen) do
       replace(my.Zutaten, i.Zutat, i.Ersatz)
    end

     

    Die Variante würde ich aber tatsächlich beim Feld 'Zutaten' als Änderungstrigger direkt unterbringen, nicht das Ninox bei jeglicher Änderung im Datensatz durch die Tabelle 'Ersetzungen' rennt.

     

    lg, Torsten