création d'un sélecteur de filtre de colonne avec des options à partir d'expressions (dynamiquement)Mon objectif est de créer un sélecteur de filtre dans une fenêtre modale qui applique un filtre par défaut « nom contient » si un filtre est fourni à la fonction. Cependant, si la fonction contient un filtre vide, la boîte de filtre reste ouverte, permettant à l'utilisateur de saisir un filtre.
Voici un exemple de résultat de sortie souhaité si l'entrée était vide, par rapport à « intervalle »
Names Default To Here( 1 );<BR />dtex = Open( "$SAMPLE_DATA/Arrhythmia.jmp" );<BR /><BR /><BR />// case with filter
filt = "interval";
eval(eval expr(
New Window( "Filter Col Selector if filter option given", <<MODAL> FILTER SELECTION IS GONE, not desired result
filt = "";
eval(eval expr(
New Window( "Filter Col Selector if no option", <<MODAL></MODAL><BR />// case with no option --> FILTER SELECTION stays, but how to make this dynamically based on the 'filt' value?<BR />filt = "";<BR />eval(eval expr(<BR />New Window( "Filter Col Selector if no option", <<MODAL></MODAL>));<BR /><BR />// attempt to create with substitute do not work- cant use comma in expr to make multiple to insert...<BR />testexpr = expr(new window("test", <<MODAL></MODAL> if(filter != "",<BR />_OPTIONS_ = eval expr(width(400), nlines(35), <<NAME contains=""></NAME>,<BR />_OPTIONS_ = expr(width(400), nlines(35), <<CONTINUOUS></CONTINUOUS>);<BR /><SPAN> substitude into(testexpr , expr(_OPTIONS_), name expr(_OPTIONS_));</SPAN><BR />
</MODAL>
J'ai donc commencé à explorer les possibilités de transformer « nom contient » en une expression qui ne serait ajoutée qu'en cas d'application d'un filtre. Auriez-vous une idée pour y parvenir facilement ? J'avais utilisé la substitution dans l'expression, mais le processus s'est bloqué lorsque j'ai dû créer une liste.
Merci,
--Pêche
Automatisation et scriptsRe : création d'un sélecteur de filtre de colonne avec des options à partir d'expressions (dynamiquement)Vous cherchez quelque chose de similaire ? Il existe une ifbox définie par défaut sur 0 dans la zone de filtre. Vous pouvez la définir sur 1 pour rendre la zone de recherche visible. Vous pouvez également envoyer le message « Le nom contient » à votre zone de filtre au lieu de le créer à l'intérieur (généralement plus facile à gérer).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Arrhythmia.jmp");// case with filter
filt = "interval";
fcs = Filter Col Selector(dt, , width(250), nlines(30));
Eval(EvalExpr(fcs << Name contains(Expr(filt))));
fcs[IfBox(1)] << Set(1);
nw = New Window("Filter Col Selector Example", << modal,
fcs
);
Re : création d'un sélecteur de filtre de colonne avec des options à partir d'expressions (dynamiquement)Merci beaucoup ! J'avais essayé d'envoyer un message exactement comme tu l'as mentionné, mais je pensais que, comme j'avais une fenêtre modèle, je ne pouvais pas le faire.
Cependant, je vois que vous avez d'abord créé le sélecteur de couleurs de filtre, puis créé la fenêtre modale en dernier - simple, je n'y avais tout simplement pas pensé. parfait, merci
Re : création d'un sélecteur de filtre de colonne avec des options à partir d'expressions (dynamiquement)Vous pouvez soit le construire avant (je le ferais), mais vous pouvez également envoyer les messages à l'intérieur de la nouvelle fenêtre et cela devrait fonctionner
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Arrhythmia.jmp");// case with filter
filt = "interval";
nw = New Window("Filter Col Selector Example", << modal,
fcs = Filter Col Selector(dt, , width(250), nlines(30)),
Eval(EvalExpr(fcs << Name contains(Expr(filt))));
fcs[IfBox(1)] << Set(1);
);