Gestore di modifica del filtroHo appena scoperto: Crea il gestore della modifica del filtro funziona solo se memorizzo il valore restituito in una variabile.
Perché lo fa
filter << Make Filter Change Handler( f );
non funziona? C'è qualche conoscenza dietro che vale la pena conoscere?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dist = Distribution( Automatic Recalc( 1 ), Continuous Distribution( Column( :POP ) ) );
filter = dist << Local Data Filter( Add Filter( columns( :Region ) ) );
f = Function( {a}, Print( a ) );
// 1st version dosn't work - why?
// filter << Make Filter Change Handler( f );
rs = filter << Make Filter Change Handler( f );Automazione e scriptingRi: Gestore cambio filtroCIAO @hogi - questo è appena venuto fuori con qualcun altro di recente.Il motivo alla base del comportamento attuale è che il simbolo JSL è il proprietario dell'oggetto che invia i callback. A differenza delle piattaforme che creano una finestra, non c'è un altro chiaro candidato ad assumerne la proprietà.Questo accade anche con cose come le finestre di visualizzazione se crei una scatola ma non le dai un genitore o la memorizzi in un simbolo, in quel caso è solo meno evidente.Un'opzione potrebbe essere quella di inserire la variabile in un simbolo dell'ambito della finestra in modo che scompaia con il report.
Ri: Gestore cambio filtroCIAO @danschikore , Grazie per la risposta.
Ho notato che un filtro dati che viene aperto da un oggetto Graph Builder attiva sempre la funzione due volte, mentre un filtro dati in una casella di contesto filtro dati attiva solo la funzione 1x.
E se disabiliti il
count excluded rows
del filtro dati "interno", puoi guardare un po' di ping-pong tra i due filtri dati.
Qual è il motivo delle chiamate di funzione con valore di ritorno 0?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
countexcluded = 1;
New Window( "Big Class - Dashboard",
Data Filter Context Box(
Panel Box( "Data Filter Context Box: Data Filter + GraphBuilder",
H Splitter Box(
Size( 700, 400 ),
<<SIZES></SIZES>