Wie aktualisiere ich die Tabelle nach dem Sortieren?Hallo zusammen,
Ich habe ein Problem mit der Sortierung einer Tabelle. Ich wollte die Tabelle nach Datum sortieren (in der Spalte „Datum1“) und mache das, nachdem eine bestimmte Bedingung erfüllt ist. Die Tabelle wird jedoch nicht sortiert und ersetzt EL_summary nach dem Sortieren. Ist eine Auffrischung nötig? Ich habe auch etwas Verzögerung eingefügt, ich dachte, man müsste etwas warten. Wenn ich es nicht benutze Tabelle(1) ersetzen, Die neue Tabelle unter einem anderen Namen wird erstellt und geöffnet (was ich nicht möchte) und auch hier werden die Daten in dieser Tabelle nicht sortiert. Danach jedoch Daten in EL_summary scheint aktualisiert und sortiert zu sein. Ich würde mich freuen, wenn ich darauf hinweisen würde, was mir fehlt. Mit freundlichen Grüßen
Aktuelle Datentabelle (EL_summary);
if( N rows(EL_summary) > 0, EL_summary << sort(by(:name("Date1")), Order( Ascending ), replace table(1)));
warte(1);
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Hallo, was ist der offizielle Weg, eine Datentabelle über JSL mit der Option zu sortieren? ErsetzenTable()?
Wie bereits erwähnt, stürzt das Skript bei geöffneten Berichten mit der folgenden Fehlermeldung ab:

... auch wenn das Diagramm nicht von der Reihenfolge in der Datentabelle abhängt:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
dt<< Sort( By( :height ), Replace Table, Order( Ascending ));
Wie wäre es, wenn Sie den Text durch etwas ersetzen würden wie:
Leider gibt es in der aktuellen Version von Jmp keine Möglichkeit, eine Tabelle mit geöffneten Berichten zu sortieren.
Jmp kann die vorhandene Tabelle nicht ersetzen, da die Möglichkeit besteht ... hm, wissen Sie, Berichtsfenster hängen möglicherweise von der vorherigen Reihenfolge ab. Leider gibt es keine Möglichkeit, dies zu überprüfen – und es gibt auch keine Möglichkeit, es zu ignorieren. Daher wird das Skript hier aufhören.


Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Ok, ich schaffe es, die neue Datentabelle auszublenden. Diese Datentabelle war die aktuelle Datentabelle, daher habe ich ihre Sichtbarkeit mithilfe von deaktiviert
Current Data Table() << ShowWindow( 0 );
Vielen Dank an alle für die Unterstützung. Mit freundlichen Grüßen.
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Sie können dies auf verschiedene Arten handhaben.
Die Ausgabe, die das Sortieren der Datentabelle verhindert, kann zur Anzeige in ein Journal verschoben werden. Die ursprüngliche Anzeige kann dann gelöscht werden, sodass die Sortierung dann stattfinden kann.
Sie können auch eine neue Datentabelle erstellen, die entweder unsichtbar oder privat ist, sodass die neue Datentabelle nicht angezeigt wird.Suchen Sie nach den Optionen „Unsichtbar“ oder „Privat“, wenn Sie die Datentabelle im Skriptindex unterteilen.
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Hallo, vielen Dank für Vorschläge!
Ich habe eine GUI erstellt und die Sortierung muss durchgeführt werden, nachdem ich ein Element aus dem Listenfeld ausgewählt habe. Danach müssen bestimmte Bilder in dieser GUI in der Reihenfolge angezeigt werden, die auf den sortierten Werten basiert. Tatsächlich stellt JMP keine nützlichen Protokollinformationen bereit, die auf die Ursache des Problems hinweisen. Gibt es eine Möglichkeit, die neue (und unerwünschte) Datentabelle, die nach dem Sortieren erstellt wird, auszublenden oder unsichtbar zu machen? Das wäre ein Workaround.
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Hallo,
Dieser Code funktionierte wie erwartet, wenn keine Diagramme geöffnet sind:
Untitled = data table("Untitled.jmp");
if( N rows(Untitled) > 0, Untitled << sort(by(:name("Column 1")), Order( Ascending ), replace table(1)));
Die Sortierung funktioniert jedoch nicht, wenn Diagramme geöffnet sind.
Untitled <<DISTRIBUTION> 0, Untitled << sort(by(:name("Column 1")), Order( Descending ), replace table(1)));
</DISTRIBUTION>
Schauen Sie sich die Protokolldatei an und wir sehen:
JMP cannot replace the existing table because there are report windows that depend on the previous ordering.
Wenn wir jedoch die Ersetzungstabelle entfernen, wird sie ohne Fehler ausgeführt, es wird jedoch eine neue Datentabelle mit den sortierten Zeilen gestartet, was nicht erwünscht ist.
Untitled <<DISTRIBUTION> 0, Untitled << sort(by(:name("Column 1")), Order( Descending )));</DISTRIBUTION>
So können Sie die Protokolldatei überprüfen, um festzustellen, ob sie informativ ist. Wenn Sie abhängige Diagramme oder Tabellen geöffnet haben, müssen Sie möglicherweise die Logik des Skripts überdenken. Ist es beispielsweise möglich, vor der Erstellung abhängiger Tabellen und Grafiken eine Neusortierung vorzunehmen?
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Ist Ihre Datentabelle mit einer vorherigen Tabelle verknüpft, sodass sie nicht geändert werden kann?Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Versuchen Sie, den Fehler abzufangen und ihn dann entsprechend zu behandeln.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(437, 413),
Graph Spacing(4),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(1)), Smoother(X, Y, Legend(2)))
);
Try(
dt << Sort(By(:height), Replace Table, Order(Ascending));
,
If(Starts With(exception_msg[1], "JMP cannot replace the existing table because there are report windows"),
dt1 = dt << Sort(By(:age), Order(Ascending)); // will create new table
/*
// if you wish to just keep one, order to create new, close old and rename new
old_name = dt << get name;
Close(dt, no save)
dt1 << set name(old_name);
dt = dt1;
*/
);
);
Verwenden von JMP > Umformen Ihrer Daten > Datentabellen sortieren
Tabelle ersetzen
Ersetzt die ursprüngliche Datentabelle durch die sortierte Tabelle, anstatt eine neue Tabelle mit den sortierten Werten zu erstellen. Diese Option ist nicht verfügbar, wenn aus der Originaltabelle generierte offene Berichtsfenster vorhanden sind.
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Hm, mit dieser Problemumgehung stürzt das Skript nicht ab ...
Andererseits: Die Daten werden nicht sortiert, sondern es wird eine neue Tabelle generiert 
Im Moment bevorzuge ich so etwas wie:
Try (sort,
Caption("Sorry, not possible to sorting the table, please close all reports and sort manually");stop());
Für die Zukunft hoffe ich, dass es so etwas geben wird
Datentabelle: Berichte abrufen (und andere Optionen)
Try(
sort,
If( New Window( "ask User", ... ),
myAffectedReports = dt << get reports with ordering issues();
myAffectedReports << close window;
sort;
)
)
oder
sort(..., ignoreEffectOnReports())
oder
sort(..., closeReportsWithOrderingIssue());
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Ich möchte ein Add-In schreiben, das die Datentabelle sortiert.
Anstelle von Try(sort, error message) irgendwo während der Ausführung des AddIns möchte ich den Benutzer zu Beginn darüber informieren, dass er alle Berichte schließen muss, bevor er das AddIn startet.
Wie kann ich das mit Jmp17 machen?
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Eine Option:
- Verwenden Sie << Get Window List, um Verweise auf alle geöffneten Fenster abzurufen (Sie können dies auf Type("Reports") beschränken, wenn Sie möchten)
- Gehen Sie diese Liste durch und prüfen Sie, ob es welche gibt, die von der zu sortierenden Datentabelle abhängen (Sie sollten entweder den Namen des Berichtsfensters ODER << Get Data table verwenden können). Wenn der Bericht zur Datentabelle gehört, fügen Sie ihn zur Liste hinzu
- Wenn die Liste Elemente enthält, zeigen Sie dem Benutzer die Nachricht an
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Funktioniert super, danke 
closeMyReports = Function( {dt},
{default local},
AllmyReports = {};
myReports = Get Window List( Type( "Reports" ) );
For Each( {rep}, myReports,
Try(
myList = (rep << Xpath( "//OutlineBox" )) << get scriptable Object();
myDTs = Transform Each( {scriptableObject}, myList, If( Is Empty( scriptableObject ), ., scriptableObject << Get Data Table() ) );
If( Contains( myDTs, dt ),
Insert Into( AllmyReports, rep )
);
)
);
If( N Items( AllmyReports ) > 0,
If(
ex = New Window( "",
<<TYPE></TYPE>
bearbeiten: Jetzt sucht das Skript auch nach komplizierteren Berichten mit vielen Datentabellen.
Betreff: Wie aktualisiere ich die Tabelle nach dem Sortieren?Nächster Schritt: Gibt es einen Befehl:
dt << get linked subsets()
