J'ai ce qui devrait être un problème simple, mais je ne sais pas comment le formuler.
J'ai quelques variables;
A1 = "44";
A2 = "47";
A3 = "50";
// les nombres sont intentionnellement au format chaîne
Et un tableau de données, dt, où ces variables sont incluses parmi beaucoup d'autres dans une colonne, colonne "LOT".Si je crée une boucle for, pour trouver ces variables dans le tableau, et marquer les lignes lorsqu'elles sont trouvées, je ne parviens pas à les trouver.
Pour (i = 1, i <= 3, i ++,
foundlot = "A" || char (i); Show (foundlot);
dt << Sélectionnez Où (: LOT = foundlot) << Colors = (5);
);
Je me rends compte que le problème est que foundlot est une chaîne "A1", "A2", "A3", ... et ne remplace pas la valeur de A1, A2 et A3 pour permettre une comparaison de la valeur de A1 à la valeur de la colonne dans la table.
Que dois-je faire pour qu'il remplace la valeur, plutôt que de comparer la valeur de la colonne à la chaîne "A1" qui n'est toujours pas une correspondance?
Merci de votre aide!
Je crois que ces deux scripts simples ci-dessous géreront ce que vous voulez.Le problème que vous rencontrez, c'est d'avoir besoin d'indiquer que A1, A2 et A3 ne sont pas des valeurs de variable, mais sont les noms de variables.Le script 1 le fera pour vous.Le deuxième script est probablement une meilleure façon de penser à votre problème.En utilisant une liste JMP, vous pouvez référencer la valeur des variables en utilisant des indices
names default to here(1);
dt=current data table();
A1 = "44";
A2 = "47";
A3 = "50";
For( i=1, i<=3, i++,
foundlot = "A" || char(i); Show (foundlot);
Eval(Parse(EvalInsert("\[dt << Select Where(:LOT == ^foundlot^, current selection("extend") ) ;]\")));
);
dt << colors( "red");
// or
names default to here(1);
dt=current data table();
aList = {"44", "47", "50" };
For( i=1, i<=3, i++,
dt << Select Where( :Lot == aList[i], current selection("extend"));
);
dt << colors( "red");
Cela a très bien fonctionné. Merci!