Wie kann ich die Reihenfolge der Optionen im Spaltenumschalter richtig anordnen, ohne die tatsächliche Reihenfolge der Felder in einer Datentabelle zu ändern?
Im bereitgestellten JSL hat das einfache Sortieren der Spaltenliste keine Auswirkungen auf die Reihenfolge der Optionen im Spaltenumschalter.
Mir ist aufgefallen, dass die tatsächliche Spaltenreihenfolge in der DataTable manchmal die Reihenfolge der Optionen im Spaltenumschalter beeinflussen kann, manchmal aber auch nicht (ich kenne den Grund dafür nicht). Bei einer DataTable mit vielen Spalten ist das Ändern der Spaltenreihenfolge jedoch sehr zeitaufwändig und erscheint sinnlos. Gibt es eine Möglichkeit, die gewünschte Sortierung der Optionen im Spaltenumschalter zu erreichen, ohne die tatsächliche Spaltenreihenfolge zu ändern?
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column( "Column 0", formula( :weight+1 ) );
dt << New Column( "Column 14", formula( :weight+2 ) );
dt << New Column( "Column 3", formula( :weight+3 ) );
dt << New Column( "Column 2", formula( :weight+4 ) );
dt << New Column( "Column 11", formula( :weight+5) );
dt << New Column( "Column 1", formula( :weight+6 ) );
dt << New Column( "Column ", formula( :weight+7 ) );
col = dt << get column names( string );
SwitchOption = {};
For Each( {value, index}, col,
If( Word( 2, value, " " ) != "",
SwitchOption = Insert( SwitchOption, col[index] )
)
);
//The column list before the order arrangement.
Graph = Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :name ), Y( :Column 0 ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Graph << Column Switcher(
Column( "column 0" ),
SwitchOption,
Title( "Test" )
);
//The column list after the order arrangement.
orderedSwitchOption = {};
oder = {};
For Each( {value, index}, SwitchOption, oder = Insert( oder, Num( Word( 2, value, " " ) ) ) );
oder = Sort List( oder );
For Each( {value, index}, oder,
orderedSwitchOption = Insert( orderedSwitchOption, "Column " || Char( value ) )
);
Graph2 = Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :name ), Y( :Column 0 ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Graph2 << Column Switcher(
Column( "column 0" ),
orderedSwitchOption,
Title( "Ordered Column" )
);
Ich denke, mit dem Spaltenumschalter müssen Sie sich entweder auf die Spaltenreihenfolge der Tabelle oder auf die alphabetische Reihenfolge verlassen

Ich bin mir nicht sicher, was die ursprüngliche Reihenfolge in diesem Fall bedeutet, da sie möglicherweise eine andere Bedeutung hat, wenn wir über Spalten in einer JMP-Tabelle sprechen.

aber ich denke, im Fall des Spaltenumschalters könnte es „Tabellenreihenfolge“ und nicht „Originalreihenfolge“ sein.
Für JMP-Tabelle
Verwenden von JMP > Eingeben und Bearbeiten Ihrer Daten > Organisieren von Daten in Datentabellen > Neuanordnen von Spalten in Datentabellen
Original Befehl
Setzt die Spalten in die Reihenfolge zurück, in der sie sich beim letzten Speichern der Datentabelle befanden.