Je remarque que le filtre de données local pour les variables catégorielles les affiche par ordre alphabétique.
Il existe une option pour les trier par nombre, mais je cherchais la possibilité de les trier par d'autres variables.
Dans mon cas, j'ai une liste spécifique que je veux utiliser comme commande, mais je ne sais pas comment le faire.
Existe-t-il un moyen plus simple que le suivant ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Selection Filter",
Data Filter Context Box(
H List Box(
dfsb = Data Filter Source Box(
Graph Builder(
Size( 419, 533 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( Y( :name, Order By( :age, Ascending, Order Statistic( "Mean" ) ) ) ),
Elements( Bar( Y, Legend( 3 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Filter" ), Image Export Display( Normal )}
)
)
);
),
Platform(
Current Data Table(),
Bubble Plot( X( :weight ), Y( :height ), Sizes( :age ), Title Position( 0, 0 ) )
)
)
)
);
Voici un script qui utilise le filtre de données local par défaut, ainsi que la propriété de colonne Ordre des valeurs pour accomplir ce que vous créez.Le script comprend 2 méthodes pour définir la commande

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// If the sorting of the default data table is not an issue this simple code will set
// the order of the name column to the order found in the data table
/*dt << sort( by( :age ), order( Ascending ), replace table( 1 ) );
dt:name << set property( "value order", {Common Order( 0 ), Row Order Levels( 1 )} );*/
// The code below creates a subset of the default data when it sorts, and then sets the
// Value Order column property to the order found in the sorted data
dtSort = dt << sort( private, by( :age ), order( Ascending ) );
sortList = dtSort:Name << get values;
Close( dtSort, Nosave );
Eval(
Substitute(
Expr(
dt:name << set property(
"value order",
{Custom Order( __sList__ ), Common Order( 0 ), Numerical Order( 0 )}
)
),
Expr( __sList__ ), sortList
)
);
Bubble Plot(
X( :weight ),
Y( :height ),
Sizes( :age ),
Title Position( 0, 0 ),
Local Data Filter(
Add Filter(
columns( :name ),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 60 ), Max( 180 ), Inc( 20 ),
Minor Ticks( 0 )}
),
Dispatch(
{},
"height",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 50 ), Max( 72.5 ), Inc( 5 ),
Minor Ticks( 1 )}
)
)
);