Wie ändere ich die Sortierreihenfolge von Werten in einem lokalen Datenfilter?Hallo zusammen,
Ich verwende JMP 18 und habe eine JMP-Datei, die eine benutzerdefinierte SQL-Abfrage zum Erstellen einer Datentabelle verwendet. An die Datentabelle sind mehrere Dashboards (bestehend aus in Graph Builder erstellten Diagrammen) angehängt. Einige der Dashboards enthalten einen lokalen Datenfilter, mit dem Benutzer steuern können, welche Zeilen in den zugehörigen Diagrammen angezeigt werden sollen.
Ich möchte die Sortierreihenfolge der Werte im lokalen Datenfilter ändern. Da die Sortierung der zugrunde liegenden Datentabelle kein Problem darstellt, habe ich versucht, den ersten Vorschlag in der Antwort von @txnelson auf diesen Beitrag zu verwenden (bearbeiteter Code unten). Dadurch wird die Datentabelle wie erwartet sortiert, aber die Sortierreihenfolge der Spalte „Batch/Reaktor“ wird nicht auf den lokalen Datenfilter angewendet (sie bleibt in der ursprünglichen Sortierreihenfolge, die alphabetisch zu sein scheint).
Die Spalte „Batch/Reaktor“ ist Zeichen/Nominal.
Hat jemand Feedback dazu, warum dieser Code nicht wie erwartet funktioniert, oder zu anderen Ansätzen, die ich wählen könnte?
Danke,
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() ) );
Automatisierung und SkriptingDatenexploration und -visualisierungBetreff: Wie ändere ich die Sortierreihenfolge der Werte in einem lokalen Datenfilter?Versuchen Sie, die Spalteneigenschaft „Wertreihenfolge“ für die in den Datenfiltern verwendeten Spalten festzulegen.
Betreff: Wie ändere ich die Sortierreihenfolge der Werte in einem lokalen Datenfilter?Ich denke, Batch/Reactor ist kein gültiger Spaltenname, wenn Sie ihn so verwenden. Versuchen Sie, ihn in :"Batch/Reacher"n zu ändern. Um sicherzugehen, sollten Sie nach der Sortierung auch wait(0) hinzufügen.
Unten sehen Sie ein Beispiel mit JMP-Beispieltabelle und On Run Complete anstelle von 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)}
);
)
);

Betreff: Wie ändere ich die Sortierreihenfolge der Werte in einem lokalen Datenfilter?Hallo Jim,
Ich habe in der Benutzeroberfläche Folgendes getan:
1. Klicken Sie mit der rechten Maustaste auf die Spaltenüberschrift
2. Spalteneigenschaften -> Wertereihenfolge
3. Klicken Sie auf Benutzerdefinierte Reihenfolge und dann auf Umkehren
Dies funktionierte für den aktuellen Ergebnissatz in der SQL-generierten Datentabelle (die Sortierreihenfolge blieb in den Datenfiltern der angehängten Dashboards erhalten). Wenn jedoch neue Ergebnisse im SQL erscheinen, werden diese Ergebnisse am Ende des Ergebnissatzes (und am Ende der Dashboard-Datenfilter) angezeigt.
Gibt es eine Möglichkeit, die Wertereihenfolge als Eigenschaft in der JSL anzugeben, sodass sie dynamisch auf den aktuellen Ergebnissatz angewendet wird?
Danke,
Andy
Betreff: Wie ändere ich die Sortierreihenfolge der Werte in einem lokalen Datenfilter?Dies ist ein einfaches Beispiel, das die Wertereihenfolge für die Spalte „Geschlecht“ in der Datentabelle „Big Class“ festlegt.
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 )} );
Die Syntax, die Sie zum Festlegen einer Spalteneigenschaft verwenden müssen, erhalten Sie immer, indem Sie die betreffende Eigenschaft interaktiv festlegen und dann dieses JSL ausführen. Die Syntax wird im JMP-Protokoll angezeigt.
dt:sex << get property( "Value Order" );
Betreff: Wie ändere ich die Sortierreihenfolge der Werte in einem lokalen Datenfilter?Für alle, die es interessiert: Hier ist der Code, den ich verwendet habe, um die Wertereihenfolge bei jeder Ausführung der SQL-Abfrage dynamisch festzulegen. Dadurch blieb die gewünschte Sortierreihenfolge für die lokalen Datenfilter in den an die Datentabelle angehängten Dashboards erhalten, was mein Ziel war.
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 />