Gestionnaire de changement de filtreJe viens de découvrir: Gestionnaire de changement de filtre ne fonctionne que si je stocke la valeur de retour dans une variable.
Pourquoi
filter << Make Filter Change Handler( f );
ne fonctionne pas ? Y a-t-il des connaissances derrière cela qui valent la peine d'être connues?
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 );Automatisation et scriptRe : gestionnaire de changement de filtreSalut @hogi - cela vient d'arriver avec quelqu'un d'autre récemment.La raison derrière le comportement actuel est que le symbole JSL est le propriétaire de l'objet qui distribue les rappels. Contrairement aux plates-formes qui créent une fenêtre, il n'y a pas d'autre candidat clair pour s'approprier.Cela se produit également avec des choses comme les boîtes d'affichage si vous créez une boîte mais ne lui donnez pas de parent ou ne la stockez pas dans un symbole, c'est juste moins visible dans ce cas.Une option consisterait à placer la variable dans un symbole de portée de fenêtre afin qu'elle disparaisse avec le rapport.
Re : gestionnaire de changement de filtreSalut @danschikore , Merci pour la réponse.
J'ai remarqué qu'un filtre de données ouvert à partir d'un objet Graph Builder déclenche toujours la fonction deux fois - tandis qu'un filtre de données dans une boîte de contexte de filtre de données déclenche simplement la fonction 1x.
Et si vous désactivez le
count excluded rows
du filtre de données "interne", vous pouvez alors regarder du ping-pong entre les deux filtres de données.
Quelle est la raison des appels de fonction avec la valeur de retour 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>