Sélectionnez des colonnes spécifiques avec le nom JSL contient du codeLe nom contient le script :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
delviers toutes les colonnes, qui contient a. Quel code faut-il ajouter pour marquer une de ces colonnes en cliquant ou double-cliquant sur la colonne depuis la list box ?
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du code@ram_asra_gmail_ , ce lien est un article décrivant la création d'une interface de recherche et de sélection ListBox.Alors qu'une partie de la discussion utilise l'objet de classe JMP qui est disponible dans JMP14, le premier article décrit l'interface utilisant des fonctions : cela fonctionne sur JMP 13.
Voir https://community.jmp.com/t5/Discussions/Can-a-scripted-quot-widget-quot-be-converted-to-a-Class/mp/182529#M40268
Les fichiers joints au message d'origine (TEB_LB_Widget.JSL, TestTEBSelector.jsl, TestLBFilter.jsl) sont expliqués dans le message avec des captures d'écran.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeAussi, pouvons-nous faire un filtre similaire pour les éléments d'une liste ? Merci RamRe : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeTrès bon exemple. Pourriez-vous également avoir un jsl similaire pour le sélecteur de ligne pour une colonne?
Merci
RAM
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeParfait!
Maintenant, le JSL fonctionne comme prévu. Cela rend les choses beaucoup plus faciles. Merci encore.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du code
JMP 13.2.1 a dt << Aller à (col ref) ; Je n'ai pas le 13.1. Alors, voici un cas test. Si cela fonctionne, le script modifié est joint. il a ajouté JSL pour amener la fenêtre au premier plan () et aller à ()
Names Default to Here(1);
dt = open("$Sample_Data/Semiconductor Capability.jmp");
//select a column towards the end of the table
:PM_L1 << set selected(1);
wait(2);
dt << go to(:PM_L1);Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeTu as raison. Votre code fonctionne. Mon erreur était le nom de l'icône. Je n'ai pas utilisé de blanc.
Une fois que le nom de l'icône a été changé en "Recherche de colonne", cela fonctionne parfaitement.
Une dernière question à ce sujet serait quel code doit être ajouté au script afin non seulement de sélectionner la colonne trouvée, mais aussi d'aller à la colonne trouvée ?
Cela améliorerait encore l'ensemble du processus au cas où la colonne ne serait pas dans la partie visible de la fenêtre.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeJe ne sais pas ce que tu veux dire par " après la fermeture de la boîte de dialogue (via l'icône dans la barre d'outils) ".
Quelle icône ? Est-ce un script personnalisé ?
Lorsque vous avez un script qui s'exécute, mais qui ne s'exécute pas dans des conditions différentes, la plupart du temps, il s'agit d'un problème de portée.Par exemple, le premier script que je vous ai donné pour JMP13 et 12 a fonctionné, cependant, si la table de données actuelle a changé alors que la boîte de dialogue était encore ouverte, la syntaxe :colname ne fonctionnera pas. C'était une faiblesse de mon programme. Cependant, lorsque j'ai converti le :colname en une chaîne "colname" en utilisant la fonction char() et en faisant référence à la table source, il est robuste.
Ainsi, tout ce que vous faites via l'icône ou le script suivant crée un problème de portée et une version JMP ne résoudra pas le problème.Donc, puisque vous n'avez pas partagé ce que vous faites, je ne peux que signaler certaines choses à rechercher :
- Le script doit utiliser des noms par défaut ici, si vous avez d'autres scripts qui font référence à dt.
- Assurez-vous que la table cible d'origine est la table actuelle avant de cliquer à nouveau sur le bouton de script. (La barre de menu affiche la liste des tableaux).
Je pense que vous pourriez avoir un problème de portée ou un problème de verrouillage de table. Bonne chance pour le trouver.
Voici une capture d'écran, j'ai ajouté le script en tant que complément. Je l'ai utilisé plusieurs fois en faisant d'autres choses, en l'utilisant sur différentes tables puis en l'utilisant à nouveau et cela fonctionne de la même manière dans JMP 13 et JMP 12.Ce n'est pas un problème de version.

Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeEncore merci pour votre soutien et votre patience.
Le script est meilleur, mais comme déjà mentionné, il est toujours possible d'obtenir aucune fonction. Par exemple, après la fermeture de la boîte de dialogue (via l'icône dans la barre d'outils), relancez une deuxième recherche et sélectionnez Exécuter sur la même table de données. Peut-être que les choses s'amélioreront avec JMP 14.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeLe dernier script que j'ai envoyé (modifié pour Current Data Table ) fonctionne à la fois pour JMP 12 et JMP 13. Voici une capture d'écran de JMP 12. Comme le montre la capture d'écran, il s'agit de l'exemple de tableau de données JMP.
Cependant, le script ne fonctionnera pas si la table de données actuelle change car << Get Selected Columns, renvoie une liste de références de colonne, pas le nom de la table.Donc :Chloroform renverra une erreur si la table de données actuelle n'a pas cette colonne.Donc, pour rendre le script plus robuste, j'ai changé la ligne 18 ci-dessous en JSL ci-dessous.Le script est joint.Il devrait même si la table d'origine n'est plus la table de données actuelle. Cependant, si le script (Ici) modifie la valeur de dt alors que la boîte de dialogue est toujours ouverte, une collision de noms se produira et causera un problème. Ou si la table d'origine est fermée alors que la boîte de dialogue est encore ouverte, des problèmes se produiront.
For(i=1, i<=nitems(_xx), i++, column(dt, char(_xx[i])) << set selected(0));

Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeLa JSL fonctionne maintenant avec la JSL de base :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Si le JSL est généralisé (pour l'utiliser dans une Icon Toolbar) dans JMP 13.1.0 comme :
Names Default To Here( 1 );
dt = Current Data Table();
Je rencontre le vieux problème => Pas de sélection de colonnes. Savez-vous si cela est spécifique à JMP 13.10.0 ?
Si oui, n'essayez pas de le réparer. J'espère que j'aurai bientôt JMP 14.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeSuper. Maintenant, le JSL fonctionne avec JMP 13.1 . J'apprécie vraiment votre endurance et celle d'Ian pour résoudre la question.
Merci beaucoup
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeDésolé. J'ai JMP 13.1
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeCe script fonctionne dans JMP 12 et JMP 13. La raison pour laquelle le script précédent ne fonctionne pas dans les versions antérieures de JMP est que les messages de la table de données effacer les sélections de colonne et sélectionner les colonnes (liste) ne sont pas disponibles. Dans les versions antérieures, les colonnes doivent être sélectionnées et désélectionnées une par une, d'où les modifications requises ci-dessous. Je n'ai accès à aucune version antérieure à JMP 12.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeQuelle version de JMP utilisez-vous.
Lorsque j'exécute le script que j'ai envoyé, voici ce qui se passe :
- la boîte de dialogue apparaît avec la boîte de filtre
- tapez un , puis sélectionnez l'âge, l'âge est mis en surbrillance ; sélectionnez le nom puis le nom est sélectionné ; maintenez la touche de contrôle et sélectionnez l'âge et les deux sont sélectionnés.
- supprimer un et tapez ei puis le poids et la taille sont sélectionnés, comportement similaire à celui ci-dessus.
Désolé, cela ne fonctionne pas pour vous.Le script que j'ai envoyé fonctionne sur JMP 14.1 sur le PC. Cela ne fonctionne pas dans JMP 13.2.1, avant de chercher une alternative, quelle version de JMP utilisez-vous ?
Chaque fois que vous posez une question, vous devez toujours spécifier la version de JMP que vous utilisez.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeMerci pour votre endurance. J'apprécie vraiment cela. Cependant, le JSL ne fonctionne toujours pas comme prévu (voir image).
Le but est d'obtenir la même fonction que celle obtenue en utilisant Cols / Columns Viewer / Name contains. Les résultats, qui sont affichés dans la zone de recherche, peuvent être cliqués et, en conséquence, la colonne spécifique est sélectionnée dans la table de données d'origine.
Si le code JSL approprié est disponible, l'ensemble du processus de recherche/sélection de colonne peut être effectué beaucoup plus rapidement.

Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeEssaye ça
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du code
Est-ce que je manque quelque chose. Je ne peux pas accéder à la colonne sélectionnée dans la table de données.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeDeviner:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ) )
);
ib = (fcb<<PARENT></PARENT>Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeMerci pour votre soutien Ian. Cela ne fonctionne pas encore comme je le souhaite.
Je recherche un code JSL avec lequel je peux rechercher des colonnes spécifiques par nom (part1), puis sélectionner la colonne souhaitée dans la zone de liste de part1 en double-cliquant et marquer la colonne dans le tableau de données.
La recherche générale part1 se fait avec du code JSL :
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Column Search",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
Le marquage part2 pourrait être fait pour l'exemple comme le code de l'index de script
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << Go to( :BP 12F );
Comment doivent-ils être combinés pour trouver, marquer et accéder aux colonnes d'un tableau de données ?
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeIan,
C'est un peu une question connexe. Étant donné que la réponse du blogueur avait lb<< Name contains(), j'ai supposé que la demande est pour l'utilisateur d'entrer un champ de filtre et toutes les colonnes seraient sélectionnées.
J'ai donc essayé d'exposer le champ Filtre (Afficher le filtre). J'ai échoué à plusieurs reprises pour activer ce deuxième élément de menu via JSL.
Existe-t-il une méthode pour activer le champ de filtre et configurer le filtre ? Je peux obtenir le nombre de menus PopupBox et le texte du menu, mais pas la sélection.

Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeJe ne suis pas sûr d'avoir bien compris, mais est-ce ce que vous recherchez ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Make a FilterBoxSelector
New Window( "Filter Col Selector Example", lb = Filter Col Selector( width( 250 ) ));
// Define and set an 'action' script
actionScript =
Expr(
selected = lb << getSelected;
dt << clearColumnSelection;
dt << selectColumns(selected);
);
lb << setScript(actionScript);
// Try it out
lb << Name contains("sex");
Wait(3);
lb << Name contains("eight");Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeMerci pour votre réponse.Malheureusement, je n'ai pas obtenu les résultats avec la mise à jour JSL. En ce moment, je ne sais pas pourquoi.
Ce que je veux en fait, c'est obtenir un comportement similaire à celui de Cols / Columns Viewer ... / Name contains ... dans JMP.
En général, cela est possible avec le code JSL mentionné dans Scripting Index :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
Cependant, après l'exécution de la chaîne de recherche, j'aimerais marquer la colonne souhaitée/sélectionnée dans la table de données, par double-clic. Cette partie est toujours manquante ou ne fonctionne pas dans le code JSL de l'index de script.
Re : Sélectionnez des colonnes spécifiques dont le nom JSL contient du codeEssaye ça
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
//select name
_xx = lb << get items;
_idx = Contains(_xx, "name");
lb << set selected( _idx, 1); //or 0 to unselectPour voir les messages disponibles pour un objet, sélectionnez Menu principal > Index des scripts > Zone d'affichage > FilterColSelector