Come cancellare correttamente un gestore dello stato di rigaHo un gestore dello stato di riga molto semplice che assicura che una determinata riga selezionata non possa mai essere deselezionata.Il problema è che voglio disattivare quella funzionalità e continuare con le normali operazioni.
Ecco il semplice script che blocca la riga 15 in modo che sia sempre selezionata.
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
x=15;
dt << select rows(x);
setrow = function({x},dt<<CLEAR select=""></CLEAR>
Quindi ora la domanda è: come rimuovo il gestore dello stato di riga, a meno di chiudere e riaprire la tabella dei dati?Posso cambiare il gestore dello stato di riga in una funzione diversa, ma preferirei rimuovere semplicemente il gestore dello stato di riga.
C'è qualcuno che ha una risposta?
Automazione e scriptingAccesso ai datiProgettazione di esperimentiPersonalizzazione di massaRi: Come cancellare correttamente un gestore dello stato di rigaPenso che devi solo assegnare vuoto alla variabile che in precedenza memorizzava il riferimento al gestore. È necessario utilizzare una chiamata di funzione Wait( 0 ) prima di annullare l'assegnazione del gestore per assicurarsi che tutti gli aggiornamenti vengano raggiunti e che lo script sia sincronizzato. (Grazie a Dan Schikore per il suggerimento su Wait.)
Vedere questo esempio ed esaminare il registro dopo l'esecuzione. Solo le modifiche allo stato delle prime due righe determinano l'output nel registro.
Names Default To Here( 1 );
// example data set
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// example handler
f = Function( {a}, Show( a ) );
// assign handler
rs = dt << make row state handler( f );
// test handler
dt << Select Rows( 1 );
dt << Select Rows( 5 );
Wait( 0 );
// de-assign handler
rs = Empty();
// test absence of handler
dt << Select Rows( 3 );
dt << Select Rows( 9 );Ri: Come cancellare correttamente un gestore dello stato di rigaUna vecchia domanda, ma perché non impostare semplicemente rs=0 ?
Ri: Come cancellare correttamente un gestore dello stato di riga<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Quanto segue sembra cancellare il gestore dello stato della riga (ma non gli stati della riga corrente):
Cancella Globali ( RS ) ;
Ri: Come cancellare correttamente un gestore dello stato di rigaGrazie.
Ri: Come cancellare correttamente un gestore dello stato di rigaCopio/incollo il codice JSL in MS-Word, quindi lo copio/incollo da Word a qui.Per esempio:
funzione_vuota = funzione ({ X } , { z.z } ,
z.z = 1 ;
) ;
RS = dt << Crea gestore dello stato di riga ( funzione_vuota ) ;
Ri: Come cancellare correttamente un gestore dello stato di rigaProbabilmente non è la soluzione corretta, ma assegno una funzione vuota al gestore dello stato di riga:
empty_function = function({x},{z},
z = 1;
);
rs = dt << Make Row State Handler(empty_function);
In qualche modo non funziona se la funzione è completamente vuota, quindi ho aggiunto z=1 come "codice fittizio".
Saluti
Peter
PS: come puoi formattare il codice di esempio come "codice" (come hai fatto tu)? Sembra che io sia troppo stupido per capire il software del forum.