Controlador de cambio de filtroMe acabo de enterar: Hacer controlador de cambio de filtro solo funciona si almaceno el valor devuelto en una variable.
Por que
filter << Make Filter Change Handler( f );
¿no trabajo? ¿Hay algún conocimiento detrás que valga la pena conocer?
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 );Automatización y secuencias de comandosRe: Controlador de cambio de filtroHola @hogi - Esto se le acaba de ocurrir a alguien más recientemente.El motivo del comportamiento actual es que el símbolo JSL es el propietario del objeto que envía las devoluciones de llamada. A diferencia de las plataformas que crean una ventana, no hay otro candidato claro para tomar posesión.Esto también sucede con cosas como los cuadros de visualización si crea un cuadro pero no le da un padre ni lo almacena en un símbolo, en ese caso es menos perceptible.Una opción sería colocar la variable en un símbolo de alcance de ventana para que desaparezca con el informe.
Re: Controlador de cambio de filtroHola @danschikore , gracias por la respuesta.
Noté que un filtro de datos que se abre desde un objeto Graph Builder siempre activa la función dos veces, mientras que un filtro de datos en un cuadro de contexto de filtro de datos solo activa la función 1x.
Y si desactivas el
count excluded rows
del filtro de datos "interno", entonces puede ver un ping-pong entre ambos filtros de datos.
¿Cuál es el motivo de las llamadas de función con valor de retorno 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>