FilteränderungshandlerIch habe gerade herausgefunden: Filteränderungshandler erstellen Funktioniert nur, wenn ich den Rückgabewert in einer Variablen speichere.
Warum tut
filter << Make Filter Change Handler( f );
nicht arbeiten? Steckt dahinter ein wissenswertes Wissen?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dist = Distribution( Automatic Recalc( 1 ), Continuous Distribution( Column( :POP ) ) );
filter = dist << Local Data Filter( Add Filter( columns( :Region ) ) );
f = Function( {a}, Print( a ) );
// 1st version dosn't work - why?
// filter << Make Filter Change Handler( f );
rs = filter << Make Filter Change Handler( f );Automatisierung und SkripterstellungBetreff: Filterwechsel-HandlerHallo @hogi - Das hat sich erst kürzlich jemand anders ausgedacht.Der Grund für das aktuelle Verhalten liegt darin, dass das JSL-Symbol der Besitzer des Objekts ist, das die Rückrufe versendet. Im Gegensatz zu Plattformen, die ein Fenster erstellen, gibt es keinen anderen klaren Kandidaten für die Übernahme des Eigentums.Dies passiert auch bei Dingen wie Anzeigefeldern, wenn Sie ein Feld erstellen, ihm aber kein übergeordnetes Element zuweisen oder es in einem Symbol speichern. In diesem Fall fällt es nur weniger auf.Eine Möglichkeit wäre, die Variable in ein Fensterbereichssymbol einzufügen, damit sie mit dem Bericht verschwindet.
Betreff: Filterwechsel-HandlerHallo @danschikore , Danke für Ihre Antwort.
Mir ist aufgefallen, dass ein Datenfilter, der über ein Graph Builder-Objekt geöffnet wird, die Funktion immer zweimal auslöst – während ein Datenfilter in einer Datenfilter-Kontextbox die Funktion nur einmal auslöst.
Und wenn Sie das deaktivieren
count excluded rows
des „inneren“ Datenfilters, dann können Sie ein Ping-Pong zwischen beiden Datenfiltern beobachten.
Was ist der Grund für die Funktionsaufrufe mit Rückgabewert 0?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
countexcluded = 1;
New Window( "Big Class - Dashboard",
Data Filter Context Box(
Panel Box( "Data Filter Context Box: Data Filter + GraphBuilder",
H Splitter Box(
Size( 700, 400 ),
<<SIZES></SIZES>