Bonjour,
J'essaie donc de faire quelque chose d'assez simple, mais j'obtiens un comportement étrange avec la sélection de lignes.
J'ai donc obtenu un tableau avec des données de conception de mélange. J'ai 12 colonnes pour 12 composants de mélange différents. Il y a trois colonnes qui, pour chaque ligne, indiquent les trois composants présents, nommés comp A, comp B, comp C.
Les séries ont été divisées en séries nommées avec une lettre de A à K. Je veux créer un script pour exécuter un tas de modèles d'ajustement en même temps. Pour ce faire, je dois créer des sous-tables avec les bonnes lignes. En gros, sélectionner chaque série une par une à l'aide de la colonne :Series. Mon problème est qu'il existe également des lignes avec un seul composant. J'ai fait le script suivant.
Names Default To Here( 1 );
Delete Symbols();
mytable = Current Data Table();
Serieslist = {} ;
For Each Row(
If(
:Series !="X" & !Contains item (:Series, Serieslist),
Serieslist = Insert (Serieslist, :Series)
);
);
mytable << clear selected row states ();
Letter = Serieslist [1];
mytable << Row Selection( Select where (:Series == Letter) );
S1 = :Comp A[mytable<<GET selected="" rows=""></GET>Maintenant, lorsque j'essaie de faire une sélection avec les bonnes lignes, cela ne fonctionne pas comme il se doit. En utilisant un tas d'instructions Print(), je me suis assuré que mes valeurs étaient correctes.
Vérifiez maintenant le morceau de code suivant :
</CODE></PRE><P> </P><PRE><CODE class=" language-jsl">mytable << Row Selection( Select where (:Ref == complist[1]) );
wait (2);
mytable << Row Selection( Select where (:Ref == complist[2]) );
wait (2);
mytable << Row Selection( Select where (:Ref == complist[3]) );
wait (2);
mytable << Row Selection( Select where (:Ref == complist[1]) );
wait (2);
mytable << Row Selection( Select where (:Ref == complist[2]), current selection ("extend") );
wait (2);
mytable << Row Selection( Select where (:Ref == complist[3]), current selection ("extend") );
mytable << Row Selection( Select where (:Ref == complist[1]) );
wait (2);
mytable << Row Selection( Select where (:Ref == "comp 6"), current selection ("extend") );
wait (2);
mytable << Row Selection( Select where (:Ref == "comp 12"), current selection ("extend") );
Les trois premières instructions sélectionnent les bonnes lignes. Mais lorsque j'essaie de sélectionner plusieurs lignes, en utilisant le sélection courante ("étendre") argument, ça ne marche pas. Est-ce que je manque quelque chose?
Sur la dernière ligne, lorsque j'écris manuellement une valeur dans l'argument select where (), cela fonctionne, mais lorsque le code doit faire une évaluation pour '==', il cesse de fonctionner. Quelqu'un a une solution? Je suis à peu près sûr qu'il existe une meilleure façon de procéder, mais j'aimerais tout de même comprendre pourquoi cela ne fonctionne pas. EST-ce quelque chose avec Eval Parse ?
J'ai joint la table de données avec le script.
Il semble qu'avec la sélection de lignes, vous deviez évaluer les valeurs lors de l'utilisation de la sélection actuelle Insérer une expression dans une autre en utilisant Eval Insert, Eval Expr, Parse et Substitute . Vous pouvez essayer de changer en <
mytable << Select where(:Ref == complist[1]);
Wait(2);
mytable << Select where(:Ref == "comp 6", current selection("extend"));
Wait(2);
mytable << Select where(:Ref == "comp 12", current selection("extend"));