Nachfolgend finden Sie einen beispielhaften Code, der ein Diagramm mit einem lokalen Datenfilter anzeigt.
namesDefaultToHere(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
graphContent = VListBox(
dt << Bivariate(
Y(:weight),
X(:height)
)
);
NewWindow("Test",
Data Filter Context Box(
BorderBox(top(20),bottom(20),left(20),right(20),
HListBox(
// local data filter
::df = dt << Data Filter( local,
AddFilter(
columns(:sex),
display(:sex,"List Display")
)
),
// some content
graphContent
)
)
)
);
// define event handler for data filter
::rs = ::df << makeFilterChangeHandler(
function({x},
show("data filter event handler");
show(hptime());
)
);
Wenn Sie eine Auswahl für den Datenfilter treffen, wird erwartungsgemäß der Ereignishandler ausgelöst.
Der Event-Handler wird jedoch auch einfach dadurch ausgelöst, dass Sie mit der Maus über Datenpunkte im Diagramm fahren.Hat irgendjemand eine Idee, warum das passieren würde?
Eine Möglichkeit, diese Nachrichten zu unterscheiden, besteht darin, auf x==(-1) zu testen.Diese Meldung sollte wahrscheinlich für df<