¿Cómo cambiar el orden de los valores en un filtro de datos local?Hola a todos,
Estoy usando JMP 18 y tengo un archivo JMP que usa una consulta SQL personalizada para crear una tabla de datos. Hay varios paneles (compuestos por gráficos creados en Graph Builder) adjuntos a la tabla de datos. Algunos de los paneles contienen un filtro de datos local para que los usuarios controlen que las filas seleccionadas se muestren en los gráficos asociados.
Quiero cambiar el orden de clasificación de los valores en el filtro de datos local. Dado que la clasificación de la tabla de datos subyacente no es un problema, intenté utilizar la primera sugerencia en la respuesta de @txnelson a esta publicación (código editado a continuación). Esto ordena la tabla de datos como se esperaba, pero el orden de clasificación de la columna Lote/Reactor no se aplica al filtro de datos local (permanece en el orden de clasificación original, que parece ser alfabético).
La columna Lote/Reactor es de carácter/nominal.
¿Alguien tiene comentarios sobre por qué este código no funciona como se esperaba o sobre otros enfoques que podría adoptar?
Gracias,
andy
New SQL Query(
Version( 130 ),
Connection(
"ODBC:..."
),
QueryName( "Custom Query" ),
CustomSQL(
" select ...
[... SQL omitted ...]
group by
up_pro_name) as dcw on
dcw.up_pro_name = sample.dn_mat_name
"
),
PostQueryScript(
"dt = Current Data Table();
dt << Sort( By( :Name(\!"Batch/Reactor\!"),:Name(\!"EFT (h)\!") ), Order( Descending, Ascending ), Replace table );
dt:Batch/Reactor << set property( \!"value order\!", {Common Order( 0 ), Row Order Levels( 1 )} );
"
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
Automatización y secuencias de comandosExploración y visualización de datosRe: ¿Cómo cambiar el orden de los valores en un filtro de datos local?Intente configurar la propiedad de la columna Orden de valores para las columnas que se utilizan en los filtros de datos.
Re: ¿Cómo cambiar el orden de los valores en un filtro de datos local?Creo que Batch/Reactor no es un nombre de columna válido si lo usas así. Intente cambiarlo a: "Batch/Reacher" n. También es posible que desee agregar esperar (0) después de ordenar solo para estar seguro.
A continuación se muestra un ejemplo que utiliza la tabla de ejemplo JMP y On Run Complete en lugar de Post Query Script.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, 1) << Set NAme("Test/ABC");
dtquery = New SQL Query(
Version(130),
Connection("JMP"),
JMP Tables(
["Big Class" => "\C:\Program Files\JMP\JMPPRO\18\Samples\Data\Big Class.jmp"
]
),
QueryName("SQLQuery1"),
Select(
Column("Test/ABC", "t1"),
Column(
"age",
"t1",
Analysis Type("Ordinal"),
Numeric Format("Fixed Dec", "0", "NO", "")
),
Column("sex", "t1"),
Column("height", "t1", Numeric Format("Fixed Dec", "0", "NO", ""))
),
From(Table("Big Class", Alias("t1"))),
) << Run Foreground(
On Run Complete(
queryResult << Sort(By(:height), Replace Table, Order(Ascending));
wait(0);
queryResult:"Test/ABC"n << Set Property(
"Value Order",
{Common Order(0), Numerical Order(0), Row Order Levels(1)}
);
)
);

Re: ¿Cómo cambiar el orden de los valores en un filtro de datos local?Hola Jim,
Hice lo siguiente en la interfaz de usuario:
1. haga clic derecho en el encabezado de la columna
2. Propiedades de columna -> Orden de valores
3. haga clic en Orden personalizado y haga clic en Invertir
Esto funcionó para el conjunto de resultados actual en la tabla de datos generada por SQL (el orden de clasificación persistió en los filtros de datos de los paneles adjuntos). Sin embargo, cuando aparecen nuevos resultados en SQL, esos resultados aparecen en la parte inferior del conjunto de resultados (y en la parte inferior de los filtros de datos del panel).
¿Hay alguna manera de especificar el orden de valores como una propiedad en JSL para que se aplique dinámicamente al conjunto de resultados actual?
Gracias,
andy
Re: ¿Cómo cambiar el orden de los valores en un filtro de datos local?A continuación se muestra un ejemplo sencillo que establece el orden de valores para la columna denominada Sexo en la tabla de datos de Big Class.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/JMP/JMPPRO/19/Samples/Data/Big Class.jmp" );
dt:sex << set property( "Value Order", {Custom Order( {"M", "F"} ), Common Order( 0 )} );
La sintaxis que necesita usar para establecer una propiedad de columna siempre se puede obtener estableciendo interactivamente la propiedad en cuestión y luego ejecutando este JSL y la sintaxis se mostrará en el registro JMP.
dt:sex << get property( "Value Order" );
Re: ¿Cómo cambiar el orden de clasificación de los valores en un filtro de datos local?Para quien esté interesado, aquí está el código que utilicé para configurar dinámicamente el orden de valores cada vez que se ejecuta la consulta SQL. Esto conservó el orden de clasificación deseado en los filtros de datos locales en los paneles adjuntos a la tabla de datos, que era mi objetivo.
order by \!"Batch/Reactor\!" desc, \!"EFT (h)\!" asc
"
),
PostQueryScript(
"dt = Current Data Table();
br_values = column(\!"Batch/Reactor\!") << GetAsMatrix();
br_values_sorted = Sort Descending ( br_values );
br_values_sorted_list = as list (br_values_sorted);
dt:\!"Batch/Reactor\!" << Set Property(\!"Value Ordering\!",Eval List(br_values_sorted_list));
dt << sort( by(\!"Batch/Reactor\!"), replace table(1));"
)
) << Run Foreground( UpdateTable( Current Data Table() ) ); [...rest of SQL query...]<BR />