Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsFrohes Neues Jahr euch allen!
Ich bin auf einen raffinierten Code gestoßen, der Eval( Eval Expr( verwendet, um Filterfelder generisch zu gestalten, was bedeutet, dass ich einfach eine Liste füllen kann und das Filterfeld alle Spalten in einer bestimmten Datentabelle darstellen würde. In einigen meiner Tabellen habe ich bis zu 25 verschiedene Filterkombinationen und ich verwende diese gerne als „Einzelkategorieanzeige“. Wenn ich jedoch Eval( Eval Expr( verwende, erhält nur der erste Name in der Liste die „Einzelkategorie“ und der Rest ist am Ende eine Liste. Gibt es eine Möglichkeit, sie alle zu einer einzigen Kategorie zu machen?
Ich habe ein Beispielskript mit der Semiconductor Capability Data Table angehängt. Wenn Sie das Skript ausführen, sehen Sie im Kontextfeld des Datenfilters (Datenfilter), dass nur „lot_id“ eine einzelne Kategorie ist und nicht der Wafer. Ich möchte beide (oder beliebige Kombinationen) in einer einzigen Kategorie haben.
Hinweis: Der Dank geht an Herrn Txnelson, der mir bei der tatsächlichen Darstellung der Verteilungsdiagramme geholfen hat.
Dank im Voraus
Qualitäts- und VerfahrenstechnikBetreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsNochmals vielen Dank, lieber Herr, es hat funktioniert
Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsIn der for-Schleife können Sie so etwas verwenden:
for(i = 1, i <= N Items(filterCol), i++,
dtFilter << Display(filterCol[i], Size( 188, 16 ), Height( 16 ), "Single Category Display");
curFilter = dtFilter << Get Filter Column(filterCol[i]);
curFilter << Clear Find;
);
Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsKurze Frage zur Funktion „Suchen“ im Datenfilter. Können Sie es deaktivieren oder gilt es standardmäßig für eine bestimmte Anzahl von Elementen in der Einzelkategorieanzeige?Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsIch habe das Gefühl, dass die obige JSL möglicherweise zu kompliziert ist. Sie könnten so etwas tun:
NamesDefaultToHere(1);
dt = Open( "$sample_data/Semiconductor Capability.jmp" );
// Columns to filter by (in a list)
filterCol = {"lot_id", "wafer"};
// Example report
dist = dt << Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :NPN1 ),
Quantiles( 0 ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Process Capability( Use Column Property Specs )
),
Automatic Recalc( 1 )
);
// Add a data filter
df = dist << Local Data Filter(Add Filter(columns( Eval(filterCol) )));
// Change the display format of all the filter variables
for(c=1, c<=NItems(filterCol), c++, df << Display( Eval(filterCol[c]), "Single Category Display" ));
Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsDas erste Skript funktioniert perfekt. Sehr geschätzt.
Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsTatsächlich scheint es, dass Sie es schaffen können, indem Sie einfach Expr( filterCol ) in Display() weglassen:
Eval(
Eval Expr(
dfcb100_S = Data Filter Context Box(
filter100_S = H List Box(
graph_vlb100_S = V List Box(
Lineup Box( N Col( 1 ),
Border Box( Sides( 15 ),
dt << Data Filter(
Local,
Mode( Show( 0 ) ),
Add Filter(
Columns( Expr( filterCol ) ),
Display(Size( 188, 16 ), Height( 16 ), "Single Category Display")
)
)
)
)
)
)
)
)
);Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsVielen Dank, Jarmo. Ich werde das erste in ein paar Minuten ausprobieren.
Das Problem mit dem zweiten Skript besteht darin, dass die Zahl filterCol[1] bei jeder SQL-Abfrage zwischen 1 und 5 liegen kann. Aus diesem Grund habe ich für jedes Produkt ein separates Skript für dieses Datenfilter-Kontextfeld geschrieben. Warum ich aufgeregt war, als ich den Expr( Eval Expr( sah.
Betreff: Anzeige einer einzelnen Kategorie innerhalb eines Eval( Eval Expr( DatenfilterfeldsSie könnten geringfügige Änderungen wie diese vornehmen (beachten Sie die dtFilter-Variable in Eval):
Eval(
Eval Expr(
dfcb100_S = Data Filter Context Box(
filter100_S = H List Box(
graph_vlb100_S = V List Box(
Lineup Box( N Col( 1 ),
Border Box( Sides( 15 ),
dtFilter = dt << Data Filter(
Local,
Mode( Show( 0 ) ),
Add Filter(
Columns( Expr( filterCol ) )
)
)
)
)
)
)
)
)
);
for(i = 1, i <= N Items(filterCol), i++,
dtFilter << Display(filterCol[i], Size( 188, 16 ), Height( 16 ), "Single Category Display" )
);Ich denke, dass Sie mit „Filter hinzufügen“ möglicherweise nicht mehrere Anzeigen gleichzeitig hinzufügen können, da dies auch funktioniert hat:
Eval(
Eval Expr(
dfcb100_S = Data Filter Context Box(
filter100_S = H List Box(
graph_vlb100_S = V List Box(
Lineup Box( N Col( 1 ),
Border Box( Sides( 15 ),
dt << Data Filter(
Local,
Mode( Show( 0 ) ),
Add Filter(
Columns( Expr( filterCol ) ),
Display( Expr( filterCol[1] ), Size( 188, 16 ), Height( 16 ), "Single Category Display" ),
Display( Expr( filterCol[2] ), Size( 188, 16 ), Height( 16 ), "Single Category Display" )
)
)
)
)
)
)
)
)
);