Ciao esperti.
Ho una tabella di riepilogo collegata, in cui seleziono le righe, in base a un criterio.
Nella mia tabella principale, ora ho bisogno di impostare un valore specifico in una colonna, per le righe selezionate.
Ho creato una tabella base con il seguente:
Errore di esempio
s1 0
s1 0
s1 0
s2 0
s2 0
s2 0
Ho un codice molto semplificato come esempio:
dt = current data table ();
dt_sum = dt << Sommario (
Gruppo (: campione),
Freq ("Nessuno"),
Peso ("Nessuno")
);
dt_sum << seleziona dove (: sample == "s1");
r = dt << recupera le righe selezionate;
chiudi (dt_sum, nosave);
column (dt, "error") [r] = 1;
Il codice viene eseguito se dt_sum è chiuso. Nel mio codice tuttavia, questo non è possibile, in quanto è necessario in seguito.
Ottengo il seguente errore, se dt_sum non è chiuso
"Impossibile impostare il valore per la colonna 'error' perché il numero di riga (-1) non è valido. {1}"
Inoltre, il valore di errore per le linee 1 e 4 è cambiato in 1, ma non il resto.
Qualcuno di voi può spiegarmi perché questo non funziona o aiutarmi con una possibile soluzione alternativa?
Grazie in anticipo, Anders
1. Penso che dovresti inviare il problema al supporto JMP. Sembra che nonostante tu stia puntando direttamente alla tabella di dati "dt", sta ancora guardando alla tabella di dati "dt_sum" e sta aggiornando lì.
2. Ecco un lavoro che consente al codice di funzionare
dt = current data table();
dt_sum = dt << Summary(
Group( :sample),
Freq( "None" ),
Weight( "None" )
);
dt_sum << select where (:sample == "s1");
r = dt << get selected rows;
//close(dt_sum, nosave);
current data table(dt);
column(dt, "error")[r] = 1;