0

Wert darf nur einmal vorkommen - Unterschiedliches Verhalten in allen Browsern und den Anwendungen auf iPad und iPhone

Guten Morgen zusammen, 

ich habe nun alle Browser (Firefox, Chrom, Edge, IE) und auch die APPs für das iPhone und iPad ausprobiert. Ich finde den Fehler nicht. 

Ich arbeite mit einer Inventarnummer, und lass diese via Skript nach Änderungen überprüfen. 

let myIV := text(Inventarnummer);
let myDS := cnt(select Inventar where text('Iventarnummer des Produktes') = myIV);
if myDS != 1 then
alert("Die Inventarnummer <" + Inventarnummer + "> ist bereits vorhanden. Erfassen Sie eine neue Inventarnummer!") and (delete this)
end

In keinem Browser funktioniert das Skript, wenn ich es im Feld "Nach Änderung folgendes Skript ausführen" einsetz. Sobald ich das Skript als Funktion einfüge, erscheint zumindest zumindest der "alarm"-Text auf, das "delete this" wird nicht umgesetzt. 

In beiden APPs funktioniert das Skript bis auf das "delete this". 

Ziel sollte es sein, das nach der Eingabe der Inventarnummer überprüft wird ob diese bereits vorhanden ist. Sollte der "alarm" auftauchen und der neue Datensatz gelöscht werden. 

Danke für eure Hilfe.

2 Antworten

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

    Hallo Lars,

     

    zum einen: Manche Funktionen, darunter alert() oder dialog() funktionieren als Änderungstrigger nicht, und wenn nur inkonsistent (z.B. nur in der App). Lt. Ninox-Kommunikation ist generelle Nicht-Funktion der vom System vorgesehene Effekt.

     

    zum Zweiten: Befehle werden mit Semikolon getrennt, Deine eine if-Funktion sollte also so aussehen:

     

    if myDS != 1 then
       alert("Die Inventarnummer <" + Inventarnummer + "> ist bereits vorhanden. Erfassen Sie eine neue Inventarnummer!");
       delete (this)
    end

     

    lg, Torsten

    • Landratsamt Schwarzwald-Baar-Kreis
    • Lars_Beier
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Torsten,

    gibt es denn von Ninox einen Ansatz wie wir dieses alternativ lösen kann, damit es konsistent funktioniert?
    Denn genau die Anwendbarkeit über unterschiedliche Plattformen hinweg soll eine der stärken von Ninox sein. Und genau dies macht mir aktuell die größten Probleme.

    In allen anderen Datenbanken kann ich dieses Feld z.B. als Primärschlüssel definieren und habe genau das erreicht was ich benötige.
    Bisher habe ich noch keine Lösung gefunden um dieses auch in Ninox abzubilden. Ist dir eine bekannt?

    Und wo kann ich dann alert() oder dialog() Funktionen anlegen, wenn nicht in einem Änderungstrigger. Die Funktionen zeigen ebenfalls keine korrekte Wirkung wenn ich diese im Trigger: "Bei neuem Datensatz folgendes Skript ausführen" hinterlege und damit auf die ganze Tabelle anwende. 
    Somit kann ich alert() oder dialog() Funktionen wohl in keinem Trigger anwenden.

    Gibt es überhaupt eine konsistente Art um alert() und dialog() irgend wo anzulegen?

    Dein "delete (this)" funktioniert nun in soweit das er mir den Eintrag im Feld selbst löscht, aber nicht den leeren Datensatz aus der Tabelle.

    Gruß Lars