DataTable 内のフィールドの実際の順序を変更せずに、列スイッチャー内のオプションの順序を適切に並べ替えるにはどうすればよいですか?
提供されている JSL では、列のリストを単純に並べ替えても、列スイッチャーのオプションの順序は影響を受けません。
データテーブル内の列の実際の順序が列スイッチャーのオプションの順序に影響することもあれば、影響しないこともあります(理由はわかりません)。しかし、列数の多いデータテーブルを扱う場合、列の順序を変更するのは非常に時間がかかり、意味がないように思えます。列の実際の順序を変更せずに、列スイッチャーのオプションを希望どおりに並べ替える方法はありますか?
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" )
);
列スイッチャーでは、表の列順かアルファベット順のどちらかに頼る必要があると思います。

この場合の「元の順序」が何を意味するのかは分かりませんが、JMPテーブルの列について話しているときには意味が異なる可能性があります。

ただし、列スイッチャーの場合は、元の順序ではなく「テーブル順序」になる可能性があると思います。
JMPテーブルの場合
JMPの使用 > データの入力と編集 > データテーブルでのデータの整理 > データテーブルでの列の並べ替え
オリジナル 注文
データ テーブルが最後に保存されたときの順序に列を戻します。