Hallo zusammen,
Ich arbeite derzeit an einer Datenextraktionsschnittstelle mit einem Datenfilter. Die Implementierung funktioniert, das Problem liegt jedoch im Layout der Spalten in meinem Filter in JMP19.
In JMP17 befinden sich die Spalten der Filter innerhalb einer LineUpBox(). Die LineUpBox verfügt über zwei nützliche Funktionen, N Col und Spacing, mit denen ich meine Spalten über mehrere Zeilen mit einem Abstand zwischen den Spalten anordnen kann.
Tree Structure of the Data Filter in JMP17Tree Structure of the Data Filter in JMP17Baumstruktur des Datenfilters in JMP17
In JMP19 hat sich die Baumstruktur des Datenfilters geändert: Die LineUpBox() wurde nach oben verschoben, und das übergeordnete Element der Spalten ist eine ListBox(), die die Funktionen NCol() und Spacing() nicht mehr unterstützt. Ich kann zwar die Funktion << SetHorizontal(1) verwenden, bin aber auf eine Zeile beschränkt, und die Darstellung ist nicht optimal.
(Vielleicht erfolgte die Änderung in JMP18, ich habe es in dieser Version nicht ausprobiert).
Tree Structure in JMP19Tree Structure in JMP19Baumstruktur in JMP19
Haben Sie eine Idee, wie ich die Spalten meines Filters sowohl in JMP19 als auch in JMP17 anordnen kann?
Ich habe versucht, eine neue LineUpBox() zu erstellen und die BorderBoxes als untergeordnete Elemente hinzuzufügen, aber dadurch ging die Filterung verloren und ich konnte die alten Elemente nicht einfach löschen. Ich weiß, dass ich etwas Ähnliches erreichen könnte, indem ich für jede Filterspalte ein eigenes New Window() mit einer ListBox() erstelle, aber ich bevorzuge den Datenfilter wegen der bedingten Eigenschaften und weil ich ihn problemlos mit verschiedenen Tabellen und Spalten verwenden kann.
Unten sehen Sie ein Beispiel mit zwei Spalten (in der Praxis sind aber auch mehr möglich). Es funktioniert in JMP17 (die beiden Spalten werden horizontal angezeigt), aber nicht in JMP19.
Window from JMP17Window from JMP17Fenster aus JMP17
f_extraction = Function({dt, cols_list, nbColsLine = 2, spacingLine = 30},
my_window = New Window("Extraction with filter",
Border Box(
Left(20), Top(10), Right(20), Bottom(10),
V List Box(
Panel Box("",
Eval(
Eval Expr(
// Creation of the Data Filter, with two columns as an example
df = dt << Data Filter(
Show Counts(0),
Conditional(1),
Show Histograms and Bars(0),
Add Filter(
Columns(Expr(cols_list)),
Display(cols_list, "List Display"),
)
)
)
);
// Here, the columns of the filter are reorderer in two columns with a space of 30 between them
// This is where I have the problem in JMP19 compared to JMP17 because the Tree Structure is different
(df << report)[Lineup Box( 2 )] << N Col( nbColsLine );
(df << report)[Lineup Box( 2 )] << Spacing( spacingLine );
For( i = 1, i <= N Items( cols_list ), i++,
(df << report)[ListBoxBox( i )] << Set Size( 180, 220 )
);
// We delete some buttons and check boxes that we don't need
(df << report)[Button Box( 4 )] << Delete;
(df << report)[Button Box( 3 )] << Delete;
(df << report)[Button Box( 2 )] << Delete;
(df << report)[CheckBoxBox( 4 )] << Delete;
(df << report)[CheckBoxBox( 3 )] << Delete;
(df << report)[CheckBoxBox( 2 )] << Delete;
(df << report)[CheckBoxBox( 1 )] << Delete;
(df << report)[Outline Box( 1 )] << Set Title( "Data Table Filters" );
),
Spacer Box(Size(0, 20)),
Button Box("OK",
// Script where I retrieve the user selection
)
)
)
)
);
// Example
Try(Close(Data Table("Big Class"), No Save));
dt = Open( "$SAMPLE_DATA/Big Class.jmp", Invisible);
f_extraction(dt, {"sex", "name"})
Vielen Dank für Ihre Hilfe !
Schade, dass man sich auf diese Art von Struktur so leicht verlassen kann, https://www.hyrumslaw.com/ .
Ich glaube nicht, dass es einfache Lösungen gibt, die sich allein durch die Anpassung der Anzeigefelder erreichen lassen. Die Änderung der Datenfilterstruktur hat zwar auch einige Benutzeroberflächen meiner Add-Ins, die ich beruflich betreue, beeinträchtigt, aber aus einem anderen Grund. Und es wird (hoffentlich...) einfacher sein, damit umzugehen, als zu versuchen, Filter in einem Raster zu organisieren.
JMP18 links und JMP19 rechts

Ja, ich weiß, dass dies nicht die beste Vorgehensweise ist, um mit diesen Strukturen umzugehen, die sich möglicherweise ändern!
Ich lasse es dann wohl erstmal so, danke fürs Teilen deiner Erfahrung 