L'expression de liste évalue uniquement la première valeurJ'essaie de réparer en tant que script rendu non fonctionnel par le déploiement JMP15.
J'ai une variable de liste qui contient des numéros de colonne d'intérêt.
ListofColumns= List(8,12,7,14);
J'essaie de générer un ensemble de cartes de contrôle, dans une seule fenêtre, de chacune des colonnes de la liste:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(eval(ListofColumns)))
);
Lorsque j'exécute ce code, il génère le graphique de contrôle approprié pour la colonne 8, mais aucun des autres.
D'un autre côté, si je mets manuellement la liste, les quatre cartes de contrôle sont générées correctement:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(8,12,7,14))
);
Je suis sûr que cela fonctionnait avec du code avant le générateur de cartes de contrôle. Et je suis aussi sûr de manquer quelque chose de simple. Appréciez toute aide!
ScriptingRe: L'expression de liste évalue uniquement la première valeurJ'ai testé votre code sur JMP 11 et j'ai trouvé que le code fonctionnait de la même manière. Ci-dessous ce que je considère comme un travail laid, et j'espère que quelqu'un a une meilleure solution
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/blood pressure.jmp" );
ListofColumns = List( 8, 4, 7, 5 );
Eval(
Parse(
"Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y( "
|| Substr(
Char( listofcolumns ),
2,
Length( Char( listofcolumns ) ) - 2
) || " )
));"
)
);
Re: L'expression de liste évalue uniquement la première valeurMerci pour le conseil. Mais j'ai fini par adopter une approche différente, en parcourant chaque valeur de la liste:
For( j = 1, j <= N Items(ListofColumns), j++, //step through the row numbers of interest
WinHandle3 << append (Control Chart( //append the control chart to existing window
Sample Label( :Lot_Number ), // using legacy Control Chart platform allows sample label use
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
ListofColumns[j],
Individual Measurement,
Moving Range
)));
); // close the for loop.
Je viens d'ajouter chaque graphique à une fenêtre existante. J'ai également changé pour utiliser la plate-forme de graphique de contrôle héritée au lieu du générateur de graphique de contrôle (amélioré?), Car je voulais spécifier l'exemple d'étiquette au lieu d'un nombre séquentiel vide de sens sur l'axe X. Le script ci-dessus semble fonctionner.