Tengo lo que debería ser un problema simple, pero no sé la forma correcta de expresarlo.
Tengo algunas variables;
A1 = "44";
A2 = "47";
A3 = "50";
// los números están en formato de cadena intencionalmente
Y una tabla de datos, dt, donde se incluyen estas variables entre muchas otras en una columna, columna "LOT".Si creo un bucle for, para encontrar estas variables en la tabla y marco las filas cuando se encuentran, no puedo encontrarlas.
Para (i = 1, i <= 3, i ++,
foundlot = "A" || char (i); Mostrar (lote encontrado);
dt << Seleccione Donde (: LOTE = lote encontrado) << Colores = (5);
);
Me doy cuenta de que el problema es que foundlot es una cadena "A1", "A2", "A3", ... y no sustituye el valor de A1, A2 y A3 para permitir una comparación del valor de A1 con el valor de la columna en la mesa.
¿Qué debo hacer para que sustituya el valor, en lugar de comparar el valor de la columna con la cadena "A1", que siempre no coincide?
¡Gracias por tu ayuda!
Creo que estos dos scripts simples a continuación se encargarán de lo que desee.El problema que está teniendo es tener la necesidad de indicar que A1, A2 y A3 no son valores de variable, sino nombres de variables.Script 1 lo hará por ti.El segundo guión probablemente sea una mejor manera de pensar en su problema.Al usar una lista JMP, puede hacer referencia al valor de las variables mediante el uso de subíndices
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");
Esto funcionó muy bien. ¡Gracias!