Das neue Skript „Tabelle aktualisieren“ in JMP 18 überschreibt die TabelleBeim Importieren von Excel-Tabellen in JMP 18 erhalte ich zwei Skripte: „Quelle“ und „Tabelle aktualisieren“. Der einzige Unterschied scheint der Befehl „Tabelle aktualisieren (1)“ zu sein.
Das zweite Skript führt ein Update der Excel-Datei durch und überschreibt alle nach dem Import erstellten Spalten. Gibt es eine Möglichkeit, neue Spalten beim Update unverändert zu lassen? Habe im Skriptindex nichts gefunden.
Automatisierung und SkriptingInhaltsorganisationWindowsBetreff: Neues JMP 18-Update-Tabellenskript überschreibt Tabellehallo @Ake , die Idee des Updates besteht derzeit darin, die vorhandenen Daten durch die neuen Daten aus der Eingabedatei zu ersetzen.
Wie Sie beschreiben, ist dies ziemlich destruktiv.
Die Idee dahinter könnte etwa sein:
Es gibt keine Garantie dafür, dass vorhandene Werte in zusätzlichen Spalten mit den neu importierten Daten übereinstimmen - also löscht man sie besser. Hm, für Spalten mit Formeln sehe ich keinen Grund, warum solche Spalten gelöscht werden sollten.
Viel besser als das Update-Skript:
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Manuell hinzugefügte Werte werden zwar weiterhin gelöscht, Formelspalten bleiben jedoch erhalten : )
Der Nachteil: Es basiert auf dem Quellskript – das ebenfalls sehr fragil ist: Aktualisieren und Verketten: Kollision des Quellskripts .
Alternativ können Sie sich Join, Concat und Update ansehen.
Betreff: Neues JMP 18-Update-Tabellenskript überschreibt TabelleDanke! Wenn ich einfach das Quellskript in Ihr Skript kopiere, wird es weniger fehleranfällig.
Ich habe eine kompliziertere Methode verwendet, indem ich die erforderliche Anzahl Zeilen hinzugefügt und dann aktualisiert habe. Ihr Skript ist sauberer.
// Compare and add number of rows if needed
nrows1 = N Rows( dt1 );
nrows2 = N Rows( dt2 );
If( nrows2 < nrows1,
dt2 << Add Rows( nrows1 - nrows2 )
);
// Update dt2
Data Table( dt2 ) << Update( With( Data Table( dt1 ) ) );
Close( dt1 );
dt2 << save();
Betreff: JMP 18 – Neues Update-Tabellen-Skript überschreibt TabelleDie Gefahr dieses Skripts: Es wird über concatenate vererbt:
Benutzer A: importiert eine Excel-Datei
Benutzer B: verkettet 2 Dateien
Benutzer C wundert sich über fehlende Daten und versucht, "Tabelle aktualisieren" zu verwenden.
vom Skript "Tabelle aktualisieren" deaktivieren?
Bitte stimmen Sie hier ab: Option zum Deaktivieren der Erstellung des Skripts „Tabelle aktualisieren“.
Betreff: JMP 18 – Neues Update-Tabellen-Skript überschreibt TabelleHallo, mir gefällt dieser Fix sehr gut, aber ich habe eine Frage: Wenn ich eine Tabelle mit diesem Skript aktualisiere, wird automatisch das generische Tabellenaktualisierungsskript hinzugefügt, was die Formelspalten beschädigen kann. Gibt es eine Möglichkeit, die automatische Generierung des neuen Tabellenaktualisierungsskripts zu deaktivieren, das der JMP-Tabelle hinzugefügt wird?
Betreff: JMP 18 – Neues Update-Tabellen-Skript überschreibt TabelleDas lässt sich vermeiden, indem Sie das Skript „Update Table“ innerhalb des Skripts löschen oder überschreiben. Hier ist eine Möglichkeit, falls Ihr benutzerdefiniertes Skript „Update Table“ den Namen „Update Table“ trägt.
dt = Current Data Table();
update_script = dt << Get Script( "Update Table" );
dt << Delete Scripts( {"Update Table"} );
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Eval(
Substitute(
Expr(
dt << Set Property( "Update Table", __update_script__ )
),
Expr( __update_script__ ), Name Expr( update_script )
)
);
Oder Sie können Ihr Skript anders benennen („Update“) und einfach eine Zeile einfügen, die „Update Table“ nach dem Update entfernt.
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
dt << Delete Scripts( {"Update Table"} );