Hallo,
Ich habe zwei Probleme bei der Verwendung des lokalen Datenfilters in JSL. Ich verwende JMP 17.
Ich entwickle ein Skript, in dem ein Benutzer aufgefordert wird, aus einer Liste auszuwählen. Diese Auswahl wird dann an einen lokalen Datenfilter innerhalb eines Graph Builder-Objekts übergeben. Dieser Teil funktioniert einwandfrei. Sobald das Diagramm geöffnet ist, möchte ich den lokalen Datenfilter jedoch in der Hauptdatentabelle speichern. Das JMP-Protokoll zeichnet dies nicht auf, wenn ich es manuell durchführe. Daher weiß ich nicht, wie ich dies skripten kann. Ich habe die Dokumentation zu den Funktionen „Lokalen Datenfilter kopieren()“ und „Lokalen Datenfilter einfügen()“ gelesen, aber das ist nicht genau das, was ich benötige. Mein erstes Problem ist also: Wie kann ich das Skript für den lokalen Datenfilter aus einem Berichtsfenster in der Hauptdatentabelle speichern?
Mein zweites Problem ist die Wiederverwendung dieses Filters. Ich habe ein weiteres Skript, das einen anderen Bericht erstellt, aber denselben lokalen Datenfilter verwendet. Ich habe bereits mit der Funktion `Get Table Property()` im gespeicherten Skript für den lokalen Datenfilter experimentiert, aber diese scheint im neuen Berichtsfenster nicht korrekt zu funktionieren.
Mir ist bewusst, dass die Zusammenführung der beiden Skripte zu einem einzigen meine Probleme lösen würde. Ich habe sie jedoch getrennt, um die Benutzerfreundlichkeit zu verbessern. Es ist nicht optimal, aber ich denke, meine Idee könnte funktionieren. Ich habe die Lösung selbst gefunden. Ich wäre sehr dankbar, wenn mir jemand bei der Fehlersuche helfen könnte.
Mit freundlichen Grüße,
Cathal
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
// First graph
obj1 = dt << Distribution(
Nominal Distribution( Column( :country ) ),
Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "Female" ) ),
Mode( Show( 1 ), Include( 1 ) )
)
);
// How to save "Local Data Filter" to data table?
// Manually add filter
dt << New Script( "Local Data Filter",
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "Female" ) ) )
);
// Second graph
obj2 = dt << Distribution(
Stack( 1 ),
Nominal Distribution(
Column( :marital status ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
);
// Get local data filter
filter = dt << Get Table Property( "Local Data Filter" );<BR /><BR />// How to apply filter to obj2?
Ein Weg
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
// First graph
obj1 = dt << Distribution(
Nominal Distribution( Column( :country ) )
);
ldf = obj1 << Local Data Filter(
Add Filter( columns( :sex ), Where( :sex == "Female" ) ),
Mode( Show( 1 ), Include( 1 ) )
);
ldf << Save Script to Data Table("Local Data Filter");
obj2 = dt << Distribution(
Stack( 1 ),
Nominal Distribution(
Column( :marital status ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
);
ldf_script = dt << Get Script("Local Data Filter");
Eval(EvalExpr(
Send(obj2, Expr(Name Expr(ldf_script)));
));
Hallo Jarmo, es funktioniert! Vielen Dank 