0

Script nach Änderung einer Verknüpfung ausführen, funktioniert nicht !?

Moin ... habe ich hier einen Bug gefunden oder liegt es an meiner Doofheit... 

Hier der Zustand .... Habe ein Verknüpfungsfeld ... wird eine bestehende Verknüpfung "unlinked" und/oder durch eine neue ersetzt, soll ein Ja/Nein Feld geschaltet werden (für eine Button Steuerung, aber das tut im Detail nichts zur Sache). Dafür gibt es ja "Nach Änderungen Script ausführen" .... aber leider passiert da nicht. Der Code ist nun sehr simple aber es scheitert schon an der ersten Zeile... für mich sieht es so aus, als wäre das Ändern einer Verknüpfung für das Feld keine Änderung ?!? 

ScheduleLoaded := false;
if dialog("!ATTENTION!", "Do you want to keep all Schedule Entries?", ["Yes", "No"]) = "No" then
let x := this;
for i in ScheduleEntries[Dates = x] do
let delEntry := (delete ScheduleEntries);
void
end
end

7 Antworten

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Moin, Moin,

    hier gibt es mehrere Sachen:

    1. Ninox-Cloud kann keine Dialoge aus einem Trigger nach Anderung starten. Das geht nur in der App.

    2. Offensichtlich befindest du dich in einem Datensatz der Tabelle Dates ( let x := this;
    for i in ScheduleEntries[Dates = x]) und dort gibt es als Untertabelle ScheduleEntries.

    die korrekte Formel für löschen Einträge in der Untertabelle wäre:

    ---
    ScheduleLoaded := false;
    if dialog("!ATTENTION!", "Do you want to keep all Schedule Entries?", ["Yes", "No"]) = "No" then
    delete ScheduleEntries
    end
    ---

    Ich frage mich aber, wie heißt den das Verknüpfungsfeld wo der Trigger sitzt.

     

    Leo

    • Dan_S
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Zu 1. : Ich arbeite nur in der Stand Alone App. Habe noch keine Cloud Version .. aber unabhängig von dem fehlenden Dialogfeature (darauf kann ich problemlos verzichten), schaltet ScheduleLoaded nicht. 

    Verknüpfungfeld heisst Dates (daher Dates=x)  [cool wenns auch einfacher geht]

    Also wenn die Verknüpfung in Dates gelöst bzw geändert wird, soll ScheduleLoaded auf false gesetzt werden, was unter anderem einen neunen Button erscheinen lässt, dass ersetzt dann den Dialog auch. Aber dieser Trigger löst nicht aus.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Habe gerade überprüft, 

    Trigger nach änderung ruft auch in der App kein Dialog auf - nur Alert. Das Thema ist also erst erledigt.

    Eine Änderung bei einem Verknüpfungsfeld kann aber bei mir ohne Probleme ein weiteres "Ja/Nein" feld auf false setzen.

     Für mich ist momentan unklar wo genau welche Felder sich befinden. Wenn das Verknüpfungsfeld "Dates" heißt, dann befindet sich das Feld in der Tabelle ScheduleEntries. Dann sollte ScheduleLoaded sich auch in ScheduleEntries befinden. In diesem Fall kann aber die Zuweisung (for i in ScheduleEntries[Dates = x] do) gar nicht stimmen. Kannst du bitte ein Screenshot von dem Formular mit Felder machen?

    Leo

    • Dan_S
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich hatte einen kleinen Fehler in meiner Beschreibung .... das Verknüpfungsfeld hiess 'Day Type' ... Dates ist Parent , ScheduleEntries ein Child - 'Day Type' ist eine Instanz von ScheduleTemplates aus dem Master Artist. 

    Deine Codeverbesserung macht genau was sie soll, am Ende das gleiche was mein Snippet auch tat, nur sieht es schön sauber aus :) 

    Nach dem ich den Dialog entfernt habe ... läuft auch der Schalter ScheduleLoaded.

    Habe dir trotz Lösung und als Dankschön für die Hilfe die Screenshots mit angehängt

    • Dan_S
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Korrektur ... ScheduleTemplates ist eine Child von Project

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Sehr schickes Modell! Was ja alles mit Ninox möglich ist.

    • Dan_S
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Merci ... sieht schon recht wirr aus ... aber die Aufgabe ist auch leicht komplex :)

     

    hast du vll noch eine Idee zu meiner Frage, die ich vor ein paar Tage stellte .... Siehe Thread

    "

    Moin die Herren, 

    ich habe ein Modul für einen Zeitablauf, der aber nicht selten über Mitternacht geht. Ich möchte gern, dass der User sich keine Gedanken über die Reihenfolge machen muss, somit fällt die Sortierung nach Index raus und ich bevorzuge die Sortierung nach Zeit ... leider ergibt sich damit das Problem, dass alle Einträge nach Mitternacht logischerweise an den Anfang springen. Gibt es da eine elegante Lösung? Möchte ungern das Datum noch extra mitführen. Sonst hätte man dem Eintrag ein JA/Nein Feld mitgeben können, welches definiert, dass ein neuer Tag beginnt, dann müsste ich aber die Tage mit anzeigen lassen. Nicht so schön."