Come seleziono tutte le celle colorate in una tabella datiMi è stata fornita una tabella dati in cui alcune righe sono colorate in rosso per indicare problemi, ma non conosco la logica alla base dei problemi. Come posso selezionare tutte le righe colorate in rosso in JSL?
Re: Come seleziono tutte le celle colorate in una tabella datidt = Open("C:/temp/Cars_modified.jmp");
//______________________________________________________________________________________
//A function to find the colored cells in a specific column.
//-15341335 = reddish color, 73 = yellowish, 36=greenish
get_colored_cells = Function( {col}, {_s,i, xp, clr_aa=0 },
// If IsMissing(clr) then get all colors
_s = col << get script ;
for(i=1, i<=narg(_s) , i++,
xp = Arg(_s, i);
if(Head Name(xp) =="Color Cells",
//this only works if the color is an integer might need a for loop to change the
//key to the RGB value
clr_aa = Associative Array(Arg(xp,1));
clr_aa << set default value(0);
Break()
);
);
clr_aa
);
//_______________________________________________________________________________________
// Usage examples:
model_aa = get_colored_cells( Column("Model"));
dt<< select rows (model_aa[73]);Ho modificato l'esempio precedente per selezionare celle giallastre e ha funzionato quando sono presenti più colori nella colonna "Modello". Quando c'è solo 1 colore nella colonna, non funziona. Come posso modificare lo script in modo che le celle colorate all'interno della colonna Modello possano essere selezionate quando nella colonna viene utilizzato solo 1 colore?
Re: Come seleziono tutte le celle colorate in una tabella datiQuindi vuoi utilizzare il seguente codice (modificato da @gzmorgan0 codice)
//get and table row with a specified color
_colorRows = dt << get rows where (Color Of( Row State( Row() ) ) != 0) ;
dt<<SELECT rows=""></SELECT>
Re: Come seleziono tutte le celle colorate in una tabella datiIn questo caso sono colorate le righe e non le singole celle.
Re: Come seleziono tutte le celle colorate in una tabella datiCome ha affermato Jim, la colorazione delle celle può essere correlata o indipendente dai colori delle righe.L'unico modo in cui so come ottenere i colori delle celle per una colonna specifica è ottenere lo script della colonna e "decomprimere" gli argomenti dell'espressione (script).
Se una colonna contiene celle colorate, ha un argomento Color Cells( {... } ) dove l'elenco contiene uno o più elenchi, il primo elemento in ogni elenco è il numero del colore e il secondo elemento nell'elenco è un altro elenco, un elenco di celle (righe) con quel colore.Il formato dell'elenco a 2 elementi è chiamato a coppia nome-valore . Lo script allegato non gestisce il caso in cui il colore della cella non è un numero intero.
Vorrei che JMP rendesse le celle di colore una proprietà di colonna in modo che col << get Column Property("Cell Colors") restituisca l'elenco, senza cercare l'argomento.
Jim potrebbe avere una soluzione più semplice. In allegato la tabella Auto_modificate.jmp e uno script che lo utilizza.Lo script fa riferimento alla tabella da c:/temp, quindi modifica lo script per avere il percorso corretto della tabella.
Re: Come seleziono tutte le celle colorate in una tabella datiNon esiste un modo diretto per ottenerlo.In parte perché il problema è: le righe sono colorate o le celle sono colorate.Per determinarlo, se guardi nella colonna che contiene il numero di riga, ovvero, guarda nella colonna Stato riga e se c'è un indicatore nelle righe in cui le righe sono colorate, ed è dello stesso colore come riga, le righe vengono colorate.Se in una riga colorata non è presente alcun indicatore colorato nella colonna Stato riga, ogni cella è colorata.
Quale di questi è il tuo caso?
Re: Come seleziono tutte le celle colorate in una tabella datiBel trucco: tramite lo script della colonna! 
:folded_hands: Indicizzazione delle espressioni: l'accesso in lettura e scrittura potrebbe facilitare il
if(Head Name(xp) =="Color Cells",
parte ...
Fino a quando non sarà disponibile, è possibile convertire l'espressione in un elenco e utilizzare l'indicizzazione dell'elenco:
dt = Open("C:/temp/Cars_modified.jmp");
myScript = dt:Model << Get Script;
SubstituteInto(myScript, Expr(New Column()), {});
colorsettings = Associative Array(Try(myScript["Color Cells"],{}));