Hola,
Tengo dos problemas relacionados con el uso del filtro de datos local en JSL. Estoy usando JMP 17.
Estoy diseñando un script que solicita al usuario que seleccione de una lista que se pasa a un filtro de datos local dentro de un objeto del Constructor de Gráficos. Esta parte funciona bien, pero una vez que se abre el gráfico, quiero guardar el filtro de datos local en la tabla de datos principal. El registro de JMP no registra esto cuando lo hago manualmente, así que no sé cómo hacerlo. He consultado el índice de scripts sobre las funciones "Copiar filtro de datos local()" y "Pegar filtro de datos local()", pero no es exactamente lo que quiero. Mi primer problema es cómo guardar el script del filtro de datos local desde una ventana de informe a la tabla de datos principal.
Mi segundo problema es cómo reutilizar ese filtro. Tengo otro script que crea un informe diferente, pero usa el mismo filtro de datos locales. He probado con la función "Obtener propiedad de tabla()" en el script de filtro de datos locales guardado, pero no parece funcionar correctamente en la nueva ventana del informe.
Entiendo que consolidar los dos scripts en uno solo resolvería mis problemas; sin embargo, los he separado para simplificar la experiencia del usuario. No es ideal, pero creo que mi idea podría funcionar, aunque lo he resuelto por mi cuenta. Agradecería mucho si alguien pudiera ayudarme a solucionar estos problemas.
Atentamente,
Cathal
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
// First graph
obj1 = dt << Distribution(
Nominal Distribution( Column( :country ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "Female" ) ),
Mode( Show( 1 ), Include( 1 ) )
)
);
// How to save "Local Data Filter" to data table?
// Manually add filter
dt << New Script( "Local Data Filter",
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "Female" ) ) )
);
// Second graph
obj2 = dt << Distribution(
Stack( 1 ),
Nominal Distribution(
Column( :marital status ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
);
// Get local data filter
filter = dt << Get Table Property( "Local Data Filter" );<BR /><BR />// How to apply filter to obj2?
De una sola mano
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
// First graph
obj1 = dt << Distribution(
Nominal Distribution( Column( :country ) )
);
ldf = obj1 << Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "Female" ) ),
Mode( Show( 1 ), Include( 1 ) )
);
ldf << Save Script to Data Table("Local Data Filter");
obj2 = dt << Distribution(
Stack( 1 ),
Nominal Distribution(
Column( :marital status ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
);
ldf_script = dt << Get Script("Local Data Filter");
Eval(EvalExpr(
Send(obj2, Expr(Name Expr(ldf_script)));
));
Hola Jarmo, ¡funciona! ¡Muchísimas gracias! 