Ho quello che dovrebbe essere un problema semplice, ma non conosco il modo giusto di esprimerlo.
Ho alcune variabili;
A1 = "44";
A2 = "47";
A3 = "50";
// i numeri sono intenzionalmente in formato stringa
E una tabella dati, dt, in cui queste variabili sono incluse tra molte altre in una colonna, colonna "LOT".Se creo un ciclo for, per trovare queste variabili nella tabella e contrassegno le righe quando vengono trovate, non sono in grado di trovarle ..
Per (i = 1, i <= 3, i ++,
foundlot = "A" || char (i); Show (foundlot);
dt << Seleziona dove (: LOT = foundlot) << Colori = (5);
);
Mi rendo conto che il problema è che il foundlot è una stringa "A1", "A2", "A3", ... e non sostituisce il valore di A1, A2 e A3 per consentire un confronto del valore di A1 con il valore della colonna sul tavolo.
Cosa dovrei fare per sostituire il valore, piuttosto che confrontare il valore della colonna con la stringa "A1" che non è sempre una corrispondenza?
Grazie per l'aiuto!
Credo che questi due semplici script di seguito gestiranno ciò che desideri.Il problema che stai riscontrando è la necessità di indicare che A1, A2 e A3 non sono valori variabili, ma sono nomi di variabili.Lo script 1 lo farà per te.Il secondo script è probabilmente un modo migliore per pensare al tuo problema.Utilizzando un elenco JMP, è possibile fare riferimento al valore delle variabili utilizzando gli script
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");
Funzionava davvero bene. Grazie!