Guión de filtro de datos<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy filtrando datos usando valores en una columna. ¿Es posible adjuntar una secuencia de comandos al filtro de datos para que la secuencia de comandos se ejecute siempre que se seleccione un nuevo valor de columna en el filtro?
Gracias.
Re: Script de filtro de datosEn JMP 11, el comando << cerrar no tendría efecto en un filtro que estaba visible.Los cambios en JMP 12 han hecho que esto funcione.
Como solución alternativa para JMP 11, podría usar:
gb << Eliminar filtro de datos locales;
Re: Script de filtro de datosAmbas soluciones funcionarán, pero necesita asignar el resultado a algo:
rsh = DataFilter1 << Crear controlador de estado de fila (DataFilter1_handler);
El controlador de estado de fila es un objeto que se le devuelve.¡Como no estaba guardado en ningún lado, se fue!
Re: Script de filtro de datosUna pregunta más sobre el filtro de datos locales en su ejemplo:
¿Cómo puedes quitar el filtro por código ("quitar filtro de datos locales" si lo haces manualmente)?
Probé estos comandos:
// obras
ldf << claro;
// No funciona
ldf << cerrar;
ldf << eliminar;
ldf << cerrar ventana;
ldf << eliminar;
Re: Script de filtro de datosGracias, eso funciona. Es muy fácil si sabes cómo hacerlo.
Mi siguiente pregunta probablemente también sea bastante fácil para usted:
Tengo un filtro de datos local en una aplicación. Quiero establecer un controlador de estado de fila para ello.
Ese es mi código:
DataFilter1 << Add Filter(
Columns(Eval(filter_parameter)),
Display(Size( 100, 150 ),List Display)
);
// set OutlineCloseOrientation and title
ldfr = DataFilter1 << report;
ldfr[Outline Box( 1 )] << OutlineCloseOrientation( "Horizontal" );
ldfr[Outline Box( 1 )] << Set Title("Filter");
// set row state handler - both versions do not work
DataFilter1 << Make Row State Handler(DataFilter1_handler);
ldfr[Outline Box( 1 )] << Make Row State Handler(DataFilter1_handler);
DataFilter1_handler = function({x},
show("row state handler function");
);
Re: Script de filtro de datosPara enviar un mensaje al filtro de datos local, debe obtener una referencia a él. Prueba algo como:
NamesDefaultToHere(1);
// Some data
dt = New Table( "Fruits",
Add Rows( 3 ),
New Column( "Fruit",
Character,
"Nominal",
Set Values( {"Pear", "Apple", "Orange"} )
)
);
// A report with a local data filter
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Fruit ) ),
Elements( Bar( X, Legend( 3 ) ) )
);
ldf = gb << Local Data Filter( Mode, Add Filter( columns( :Fruit ) ) );
// Row state handler function
doSomethingWithSelection = Function({x}, {Default Local},
currentScript = ldf << getScript;
ClearLog();
Print(currentScript);
);
// Get a reference to the report
gbReport = gb << Report;
// Assign the row state handler to the local data filter display box
rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(doSomethingWithSelection);
Re: Script de filtro de datosTengo un problema similar. Me gustaría almacenar la secuencia de comandos de un filtro de datos local de un generador de gráficos en una variable de cadena cada vez que cambia el filtro. Mi problema con el script anterior es cómo acceder al filtro de datos local en la función doSomethingWithSelection.
La siguiente línea no funciona, no proporciona el script de filtro de datos:
cadena = informe g [ esquema ( 1 )] << obtener guión
Re: Script de filtro de datosBrillante - gracias.
Re: Script de filtro de datosSobre la base de la respuesta de Dan, intente:
NamesDefaultToHere(1);
// Some data
dt = New Table( "Fruits",
Add Rows( 3 ),
New Column( "Fruit",
Character,
"Nominal",
Set Values( {"Pear", "Apple", "Orange"} )
)
);
// A report with a local data filter
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Fruit ) ),
Elements( Bar( X, Legend( 3 ) ) ),
Local Data Filter( Mode, Add Filter( columns( :Fruit ) ) )
);
// Row state handler function
doSomethingWithSelection = Function({x}, {Default Local}, Beep(); Wait(0.1); Beep() );
// Get a reference to the report
gbReport = gb << Report;
// See what messages the data filter display box understands (prints to the log)
ShowProperties(gbReport[OutlineBox(1)]);
// Assign the row state handler to the local data filter display box
rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(doSomethingWithSelection);
Re: Script de filtro de datosEl filtro de datos manipula los estados de fila de la tabla de datos (filtro global) o un conjunto privado de estados de fila (filtro local).Puede usar dt<