ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesSalut
J'ai besoin de conseils de script car il y a eu des changements dans les propriétés de la colonne de JMP14 à JMP15 concernant l'ordre des valeurs - introduisant "l'ordre personnalisé"
Le script suivant fonctionne correctement dans JMP 14 et le résultat peut être vu en vérifiant les propriétés de la colonne
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
// JMP 14 Script for value ordering column "BatchVO" in the Order of the values in column "Timestamp"
:BatchVO << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
Le script ci-dessus fonctionne dans JMP15 mais le résultat n'est pas visible dans les propriétés de la colonne - je suppose - en raison de la nouvelle "commande personnalisée"
Est-ce que quelqu'un sait comment changer cela pour le faire fonctionner et le résultat visible dans les propriétés de la colonne dans JMP15 ?
Ce qui suit ne fonctionne pas.
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
//JMP15 Script
:BatchVO << Set Property( "Value Order", {Custom Order(Eval( g[Rank Index( m )] ))} );Des idées sur le bon script JSL pour JMP15 et supérieur ?
@martindemel
Automatisation et scriptRe : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnespic1

pic2

Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesSalut Jim, je suis confronté à un problème similaire avec le format de classement des valeurs dans le script; Je dois pouvoir décocher la commande du client et la conserver dans le niveau de commande de ligne par table de données. Votre aide est grandement appréciée
Voici la partie du script où je sélectionne les colonnes à empiler.
dt = Current Data Table();
dt1 = Data Table( dt ) << Stack(
columns( :Data Target, :Data1, :Data2, :Data3, :Data4, :Data5, :Best Data, ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Drop All Other Columns( 1 ),
);
Lorsque j'exécute mon script, j'obtiens le graphique avec des données triées par ordre alphabétique voir pic1 où il affiche les meilleures données sur la gauche
Je veux avoir l'ordre de valeur de telle manière que
1) Je pourrais désélectionner la case Commande client
2) Vérifiez les niveaux d'ordre des lignes
de cette façon, le graphique arrive dans le même ordre dans la table de pile que l'image 2 où la cible de données se trouve à l'extrême gauche du graphique.
Merci
Sam
Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesLa colonne à laquelle vous essayez d'appliquer Spec Limits est d'un type de données de caractères., Vous devez le changer en numérique.Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesVoir le message d'erreur ci-joint.

Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesQuel est le message d'erreur dans le journal ?Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesPouvez-vous m'aider à ce sujet .. cela fonctionne bien avec la V13, mais lorsque je passe à la V15, une erreur persiste dans la définition des limites des spécifications.
btw, la fonction de ceci est de fusionner 2 fichiers csv ou plus en utilisant la 3ème à la 5ème rangée comme spécifications. Merci!
Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesAprès avoir commenté votre ligne Add Graphics Code (vous n'avez pas inclus l'objet dlgStatus), votre code a bien fonctionné pour mes exemples de données.Donc, si cela ne fonctionne pas pour votre code, je soupçonne qu'il y a une incompatibilité entre le nom des colonnes de votre table de données et la colonne de description de votre spectable.
Names Default To Here( 1 );
datatable = Open( "$SAMPLE_DATA/big class.jmp" );
spectable = New Table( "specs",
Add Rows( 2 ),
New Column( "Description", Character, "Nominal", Set Values( {"height", "weight"} ) ),
New Column( "LSL", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [52, 61] ) ),
New Column( "USL", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [70, 175] ) ),
New Column( "Units", Character, "Nominal", Set Values( {"Inches", "Pounds"} ), Set Display Width( 56 ) )
);
For( r = 1, r <= N Rows( spectable ), r++,
specname = spectable:Description[r];
Try(
dtcol = Column( datatable, specname ),
//write("No data for \!"" || specname|| "\!"");
Continue()
);
//write("Setting spec for \!"" || specname|| "\!"\!r");
If( Not( Is Missing( spectable:LSL[r] ) ) | Not( Is Missing( spectable:USL[r] ) ),
Eval(
Substitute(
Expr(
dtcol << Set Property( "Spec Limits", {LSL( _L ), USL( _U ), Show Limits( 1 )} )
),
Expr( _L ), spectable:LSL[r],
Expr( _U ), spectable:USL[r]
)
)
);
If( spectable:Units[r] != "",
Eval( Substitute( Expr( dtcol << Set Property( "Units", _U ) ), Expr( _U ), spectable:Units[r] ) )
);
progress = Floor( (r / N Rows( spectable )) * 100 );
//dlgStatus[FrameBox( 1 )] << Add Graphics Script( {Fill Color( "blue" ), Rect( 0, 1, progress, 0, 1 )} );
Wait( 0.001 );
);Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesCelui-ci, ça va. Je suis bloqué dans Set Property for Spec Limits. Merci pour votre aide
for (r = 1, r <= N Rows(spectable), r++,
specname = spectable:Description[r];
try(
dtcol = Column(datatable, specname);
,
//write("No data for \!"" || specname|| "\!"");
Continue()
);
//write("Setting spec for \!"" || specname|| "\!"\!r");
if(not(ismissing(spectable:LSL[r])) | not(ismissing(spectable:USL[r])),
eval(substitute(expr(dtcol << Set Property("Spec Limits", {LSL(_L), USL(_U), Show Limits(1)})),
expr(_L), spectable:LSL[r],
expr(_U), spectable:USL[r]
));
);
if(spectable:Units[r] != "",
eval(substitute(expr(dtcol << Set Property("Units", _U)),
expr(_U), spectable:Units[r]
));
);
progress = floor((r / N Rows(spectable)) * 100);
dlgStatus[FrameBox(1)] << Add Graphics Script({Fill Color("blue"),Rect(0,1,progress,0,1)});
wait(0.001);
);Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesMerci beaucoup.
Maintenant, il est visible dans le menu des propriétés de la colonne - super.Re : ordre des valeurs - utilisation de JSL pour définir les propriétés des colonnesLes valeurs renvoyées par votre Summarize pour la variable "g" sont renvoyées sous forme de chaînes de caractères et vous tentez d'appliquer des valeurs de chaîne de caractères à une colonne numérique
Le code ci-dessous semble faire ce que vous voulez
names default to here(1);
Summarize( g = by( :BatchVO ), m = Mean( :name("Timestamp") ) );
for(i=1,i<=nitems(g),i++,
g[i]=num(g[i])
);
//JMP15 Script
eval(substitute(expr(:BatchVO << Set Property( "Value Order", {Custom Order(__list__)} );),
expr(__list__), g[Rank Index( m )] ));