Script de filtre de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je filtre les données en utilisant des valeurs dans une colonne. Est-il possible d'attacher un script au filtre de données afin que le script s'exécute chaque fois qu'une nouvelle valeur de colonne est sélectionnée dans le filtre ?
Merci.
Re : Script de filtre de donnéesDans JMP 11, la commande << close n'avait pas d'effet sur un filtre visible.Les modifications apportées à JMP 12 ont permis d'obtenir ce résultat.
Comme solution de contournement pour JMP 11, vous pouvez utiliser :
gb << Supprimer le filtre de données local ;
Re : Script de filtre de donnéesVos deux solutions fonctionneront, mais vous devez affecter le résultat à quelque chose :
rsh = DataFilter1 << Créer un gestionnaire d'état de ligne (DataFilter1_handler);
Le gestionnaire d'état de ligne est un objet qui vous est renvoyé.Comme il n'était stocké nulle part, il est parti!
Re : Script de filtre de donnéesUne autre question sur le filtre de données local dans votre exemple :
Comment pouvez-vous supprimer le filtre par code ("remove local data filter" si vous le faites manuellement) ?
J'ai essayé ces commandes :
// travaux
ldf << clair;
// ne marche pas
ldf << fermer;
ldf << supprimer ;
ldf << fermer la fenêtre ;
ldf << supprimer ;
Re : Script de filtre de donnéesMerci, ça marche. C'est vraiment facile si vous savez comment faire
Ma prochaine question est probablement aussi assez facile pour vous :
J'ai un filtre de données local dans une application. Je veux définir un gestionnaire d'état de ligne pour cela.
C'est mon code :
DataFilter1 << Add Filter(
Columns(Eval(filter_parameter)),
Display(Size( 100, 150 ),List Display)
);
// set OutlineCloseOrientation and title
ldfr = DataFilter1 << report;
ldfr[Outline Box( 1 )] << OutlineCloseOrientation( "Horizontal" );
ldfr[Outline Box( 1 )] << Set Title("Filter");
// set row state handler - both versions do not work
DataFilter1 << Make Row State Handler(DataFilter1_handler);
ldfr[Outline Box( 1 )] << Make Row State Handler(DataFilter1_handler);
DataFilter1_handler = function({x},
show("row state handler function");
);
Re : Script de filtre de donnéesPour envoyer un message au filtre de données local, vous devez obtenir une référence à celui-ci. Essayez quelque chose comme :
NamesDefaultToHere(1);
// Some data
dt = New Table( "Fruits",
Add Rows( 3 ),
New Column( "Fruit",
Character,
"Nominal",
Set Values( {"Pear", "Apple", "Orange"} )
)
);
// A report with a local data filter
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Fruit ) ),
Elements( Bar( X, Legend( 3 ) ) )
);
ldf = gb << Local Data Filter( Mode, Add Filter( columns( :Fruit ) ) );
// Row state handler function
doSomethingWithSelection = Function({x}, {Default Local},
currentScript = ldf << getScript;
ClearLog();
Print(currentScript);
);
// Get a reference to the report
gbReport = gb << Report;
// Assign the row state handler to the local data filter display box
rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(doSomethingWithSelection);
Re : Script de filtre de donnéesJ'ai le même problème. Je souhaite stocker le script d'un filtre de données local d'un générateur de graphes dans une variable de chaîne chaque fois que le filtre change. Mon problème avec le script ci-dessus est de savoir comment accéder au filtre de données local dans la fonction doSomethingWithSelection.
La ligne suivante ne fonctionne pas, elle ne donne pas le script du filtre de données :
chaîne = gbreport [ boîte de contour ( 1 )] << obtenir le script
Re : Script de filtre de donnéesGénial - merci.
Re : Script de filtre de donnéesEn vous appuyant sur la réponse de Dan, essayez :
NamesDefaultToHere(1);
// Some data
dt = New Table( "Fruits",
Add Rows( 3 ),
New Column( "Fruit",
Character,
"Nominal",
Set Values( {"Pear", "Apple", "Orange"} )
)
);
// A report with a local data filter
gb = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Fruit ) ),
Elements( Bar( X, Legend( 3 ) ) ),
Local Data Filter( Mode, Add Filter( columns( :Fruit ) ) )
);
// Row state handler function
doSomethingWithSelection = Function({x}, {Default Local}, Beep(); Wait(0.1); Beep() );
// Get a reference to the report
gbReport = gb << Report;
// See what messages the data filter display box understands (prints to the log)
ShowProperties(gbReport[OutlineBox(1)]);
// Assign the row state handler to the local data filter display box
rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(doSomethingWithSelection);
Re : Script de filtre de donnéesLe filtre de données manipule les états de ligne de la table de données (filtre global) ou un ensemble privé d'états de ligne (filtre local).Vous pouvez utiliser dt<