Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Hallo. Ich frage mich, ob es eine Möglichkeit gibt, die Meldung „Möchten Sie speichern ...“ zu verhindern, wenn eine Tabelle geschlossen wird? Das heißt, diese Nachricht:

Warum? Weil ich dem Benutzer erlauben möchte, Änderungen an der Tabelle vorzunehmen, ich ihn aber zum Speichern als CSV zwingen möchte, weil wir andere Apps haben, die das CSV-Format erfordern. Dazu füge ich ein „<< On Close“-Skript hinzu:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
a = dt << is Dirty;
Show(a);
dt << add rows(5);
b = dt << is dirty;
Show(b);
dt << On Close(
dt = CurrentDataTable();
If(dt << Is Dirty,
dt << Save As("$DESKTOP/file.csv")
)
);Vor dem Speichern der CSV-Datei erscheint jedoch immer noch die Meldung „Möchten Sie speichern?“. Ich möchte wirklich nicht, dass der Benutzer sowohl eine JMP-Tabelle als auch eine CSV-Datei speichert, da dann zwei Kopien desselben Dokuments erstellt werden, was zu Verwirrung führt.
Spezifikationen:
JMP Pro 16.2.0
macOS Big Sur: 11.6.7
Danke!
DatenzugriffMassenanpassungQualitäts- und VerfahrenstechnikBetreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Das Dirty-Flag wird bei jeder Änderung gesetzt. Wenn es jedoch beim Schließen der Tabelle festgelegt ist, erhalten Sie eine Speicheraufforderung. Sie könnten ein Experiment ausprobieren, bei dem Sie es zu Beginn als CSV-Datei speichern. Ich bin mir nicht sicher, wo es später gespeichert wird, nachdem eine weitere Änderung vorgenommen wurde. Ich denke, es erinnert sich vielleicht noch daran, dass es in der CSV-Datei speichert.Betreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Abhängig davon, was Sie tun möchten und welche Änderungen Sie den Benutzern erlauben, könnten Sie möglicherweise etwas verwenden Neue Datenbox()
Betreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Aha – ja, das ist das Problem. Um die Speicheraufforderung zu verhindern, indem Sie beim Laden der Tabelle den nicht verschmutzten Status festlegen: einfach. So legen Sie den Nicht-Dirty-Status nach jeder Änderung der Tabelle durch den Benutzer fest: Mir ist keine Möglichkeit bekannt, dies zu tun (z. B. eine Meldung „<< On Change()“). Vielleicht gibt es einfach keine Lösung. 
Betreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Stellen Sie die ein nicht schmutzig Status direkt nach dem Laden oder Ändern der Tabelle. Ich mache das manchmal für temporäre Tabellen, die ich vielleicht untersuchen, aber nicht behalten möchte. Die Idee dahinter ist, dass es sich bei jeder Tabelle, die sich von der auf der Festplatte gespeicherten Version unterscheidet, nicht um eine saubere Kopie dessen handelt, was sich auf der Festplatte befindet, sondern gespeichert werden muss. Eine neue Tabelle, die nicht gespeichert wurde, ist fehlerhaft, Sie können sie jedoch ändern.
Bearbeiten: Da Sie das Dirty-Flag testen, um zu entscheiden, dass es gespeichert werden muss, benötigen Sie einen anderen Ansatz, vielleicht immer das Speichern.
Betreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?Hallo Craige. Ich gehe davon aus, dass Sie diese Zeile zum Skript „On Close“ hinzufügen möchten. Das habe ich auch versucht. Das Problem besteht darin, dass die Speicheraufforderung angezeigt wird, bevor das On-Close-Skript ausgeführt wird.
Betreff: Methode zur Vermeidung der Meldung „Möchten Sie speichern“?dt<<SETDIRTY></SETDIRTY>
markiert die Tabelle als „nicht verschmutzt“ und verhindert so die Speicheraufforderung.