Comment modifier l'ordre de tri des valeurs dans un filtre de données local ?Salut tout le monde,
J'utilise JMP 18 et j'ai un fichier JMP qui utilise une requête SQL personnalisée pour créer une table de données. Plusieurs tableaux de bord (composés de graphiques créés dans Graph Builder) sont attachés au tableau de données. Certains tableaux de bord contiennent un filtre de données local permettant aux utilisateurs de contrôler les lignes sélectionnées qui doivent être affichées dans les graphiques associés.
Je souhaite modifier l'ordre de tri des valeurs dans le filtre de données local. Étant donné que le tri de la table de données sous-jacente n'est pas un problème, j'ai essayé d'utiliser la première suggestion de la réponse de @txnelson à cette publication (code modifié ci-dessous). Cela trie la table de données comme prévu, mais l'ordre de tri de la colonne Lot/Réacteur n'est pas appliqué au filtre de données local (il reste dans l'ordre de tri d'origine, qui semble être alphabétique).
La colonne Lot/Réacteur est caractère/nominal.
Quelqu'un a-t-il des commentaires sur les raisons pour lesquelles ce code ne fonctionne pas comme prévu, ou sur d'autres approches que je pourrais adopter ?
Merci,
Andy
New SQL Query(
Version( 130 ),
Connection(
"ODBC:..."
),
QueryName( "Custom Query" ),
CustomSQL(
" select ...
[... SQL omitted ...]
group by
up_pro_name) as dcw on
dcw.up_pro_name = sample.dn_mat_name
"
),
PostQueryScript(
"dt = Current Data Table();
dt << Sort( By( :Name(\!"Batch/Reactor\!"),:Name(\!"EFT (h)\!") ), Order( Descending, Ascending ), Replace table );
dt:Batch/Reactor << set property( \!"value order\!", {Common Order( 0 ), Row Order Levels( 1 )} );
"
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
Automatisation et scriptsExploration et visualisation des donnéesRe : Comment changer l'ordre de tri des valeurs dans un filtre de données local ?Essayez de définir la propriété de colonne Ordre des valeurs pour les colonnes utilisées dans les filtres de données.
Re : Comment changer l'ordre de tri des valeurs dans un filtre de données local ?Je pense que Batch/Reactor n'est pas un nom de colonne valide si vous l'utilisez comme ça. Essayez de le changer en :"Batch/Reacher"n. Vous souhaiterez peut-être également ajouter wait(0) après le tri, juste pour être sûr.
Vous trouverez ci-dessous un exemple utilisant la table d'exemple JMP et On Run Complete au lieu du Post Query Script.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, 1) << Set NAme("Test/ABC");
dtquery = New SQL Query(
Version(130),
Connection("JMP"),
JMP Tables(
["Big Class" => "\C:\Program Files\JMP\JMPPRO\18\Samples\Data\Big Class.jmp"
]
),
QueryName("SQLQuery1"),
Select(
Column("Test/ABC", "t1"),
Column(
"age",
"t1",
Analysis Type("Ordinal"),
Numeric Format("Fixed Dec", "0", "NO", "")
),
Column("sex", "t1"),
Column("height", "t1", Numeric Format("Fixed Dec", "0", "NO", ""))
),
From(Table("Big Class", Alias("t1"))),
) << Run Foreground(
On Run Complete(
queryResult << Sort(By(:height), Replace Table, Order(Ascending));
wait(0);
queryResult:"Test/ABC"n << Set Property(
"Value Order",
{Common Order(0), Numerical Order(0), Row Order Levels(1)}
);
)
);

Re : Comment changer l'ordre de tri des valeurs dans un filtre de données local ?Salut Jim,
J'ai fait ce qui suit dans l'interface utilisateur :
1. cliquez avec le bouton droit sur l'en-tête de la colonne
2. Propriétés de la colonne -> Ordre des valeurs
3. cliquez sur Commande personnalisée et cliquez sur Inverser
Cela a fonctionné pour l'ensemble de résultats actuel dans la table de données générée par SQL (l'ordre de tri a persisté dans les filtres de données des tableaux de bord joints). Cependant, lorsque de nouveaux résultats apparaissent dans le SQL, ces résultats apparaissent au bas du jeu de résultats (et au bas des filtres de données du tableau de bord).
Existe-t-il un moyen de spécifier l'ordre des valeurs en tant que propriété dans le JSL afin qu'il soit appliqué dynamiquement au jeu de résultats actuel ?
Merci,
Andy
Re : Comment changer l'ordre de tri des valeurs dans un filtre de données local ?Voici un exemple simple qui définit l'ordre des valeurs pour la colonne nommée Sexe dans la table de données Big Class.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/JMP/JMPPRO/19/Samples/Data/Big Class.jmp" );
dt:sex << set property( "Value Order", {Custom Order( {"M", "F"} ), Common Order( 0 )} );
La syntaxe que vous devez utiliser pour définir une propriété de colonne peut toujours être obtenue en définissant de manière interactive la propriété en question, puis en exécutant ce JSL et la syntaxe sera affichée dans le journal JMP.
dt:sex << get property( "Value Order" );
Re : Comment modifier l'ordre de tri des valeurs dans un filtre de données local ?Pour ceux qui sont intéressés, voici le code que j'ai utilisé pour définir dynamiquement l'ordre des valeurs à chaque exécution de la requête SQL. Cela a conservé l'ordre de tri souhaité pour les filtres de données locaux dans les tableaux de bord attachés à la table de données, ce qui était mon objectif.
order by \!"Batch/Reactor\!" desc, \!"EFT (h)\!" asc
"
),
PostQueryScript(
"dt = Current Data Table();
br_values = column(\!"Batch/Reactor\!") << GetAsMatrix();
br_values_sorted = Sort Descending ( br_values );
br_values_sorted_list = as list (br_values_sorted);
dt:\!"Batch/Reactor\!" << Set Property(\!"Value Ordering\!",Eval List(br_values_sorted_list));
dt << sort( by(\!"Batch/Reactor\!"), replace table(1));"
)
) << Run Foreground( UpdateTable( Current Data Table() ) ); [...rest of SQL query...]<BR />