Hola,
Así que estoy tratando de hacer algo bastante simple, pero obtengo un comportamiento extraño con la selección de filas.
Entonces obtuve una tabla con algunos datos de diseño de mezcla. Tengo 12 columnas para 12 componentes de mezcla diferentes. Hay tres columnas que para cada línea indican qué tres componentes están presentes, llamados comp A, comp B, comp C.
Las carreras se han dividido en series nombradas con una letra de la A a la K. Quiero hacer una secuencia de comandos para ejecutar un montón de modelos de ajuste a la vez. Para hacerlo, necesito hacer subtablas con las filas correctas. Básicamente seleccionando cada serie una por una usando la columna :Series. Mi problema es que también hay líneas con un solo componente. Hice el siguiente guión.
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>Ahora, cuando trato de hacer una selección con las líneas correctas, no funciona como debería. Usando un montón de instrucciones Print(), me aseguré de que mis valores fueran correctos.
Ahora revisa el siguiente fragmento de código:
</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") );
Las primeras tres instrucciones seleccionan las filas correctas. Pero cuando trato de seleccionar varias filas, usando el selección actual ("extender") argumento, no funciona. ¿Me estoy perdiendo de algo?
En la última línea, cuando escribo manualmente un valor en el argumento select where (), funciona, pero cuando el código tiene que hacer una evaluación para '==', deja de funcionar. ¿Alguien tiene una solución? Estoy bastante seguro de que hay una mejor manera de hacer esto, pero aún así, me gustaría entender por qué no funciona. ¿Es algo con Eval Parse?
He adjuntado la tabla de datos con el script.