Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéJe crée une liste déroulante à l'aide d'une zone de liste déroulante. l'idée est de choisir un élément/option particulier dans cette liste devrait créer un graphique à barres correspondant.
dans le code joint, Tool_time_wf est la fonction censée créer le tracé en utilisant l'argument/invite/nom d'équipement [choix de variable] de la zone de liste déroulante. Chaque élément/option dans la liste déroulante myListbox est déjà un nom de colonne dans la table de données (jointe) à partir de laquelle le diagramme à barres doit être généré sous la forme semaine[colonne 1 dans la table de données] par rapport au nom de l'équipement/nom de la colonne [colonne 2 et dans le tableau de données].
l'utilisateur choisit idéalement un nom d'équipement/nom de colonne dans la liste déroulante, et le même nom d'équipement existe en tant que nom de colonne dans le tableau de données (voir le tableau de données 90 sans titre ci-joint) qui sera tracé en tant que semaine par rapport au nom de colonne/nom d'équipement . bien que le tableau de données joint ici ne montre que 2 noms de colonne ou 2 noms d'équipement. mais le tableau réel aura 100 nom de colonne/100 nom d'équipement. Donc j'ai besoin d'une fonction (c'est là que je suis bloqué maintenant) qui créera le tracé en utilisant la sélection dans la liste déroulante de 100 nom d'équipement/nom de colonne.
Toute aide serait appréciée. Cordialement.
Tableau de donnéesScriptRe : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéMerci encore. l'apprécier.Re : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéDans le code ci-dessus, Expr() est essentiellement un détenteur de code et n'est pas traité tant que le pointeur vers Expr() n'est pas traité dans le code. L'Eval() est une fonction qui dit à JMP, traiter le code avec l'Eval() et renvoyer à JSL, les résultats du processus de code.Re : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracémerci beaucoup txnelson. pourriez-vous également expliquer comment fonctionne la fonction Tool_time_wf ? Je ne suis pas clair à 100 % sur le principe de fonctionnement expr et eval. Cordialement.
Re : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéIl y a quelques problèmes avec votre script ...... tous mineurs
- Votre nouvelle fenêtre, qui est la partie contrôle de votre code, doit être après tout le code qui va être appelé.Autrement dit, vous ne pouvez pas appeler doListChoice avant que JMP n'ait lu doListChoice.JSL est un interpréteur, il commence à lire le code à la première ligne, puis suit simplement où le code le prend.
- La façon dont vous aviez structuré votre code, avec la nouvelle fenêtre vers le haut, signifiait qu'il utilisait toujours le code de l'exécution précédente.JMP conserve le code d'une exécution à l'autre, sauf indication contraire.J'ai placé un Clear Globals() dans votre code pour m'assurer que tout est effacé pour chaque exécution.
- Vous faisiez référence à xvar et yvar de manière incorrecte.J'ai légèrement modifié ce code pour le faire fonctionner.
- Le code devenait confus sur la table de données à traiter.J'ai ajouté dtNames et dt pour permettre au code de pointer vers les données pour le rendre plus clair

Clear Symbols();
Names Default To Here( 1 );
//current data table that has data on individual equipment based on each week
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Untitled 90.jmp";
dtNames = Open(filepath,invisible);
//equipment list (will go upto 100 [equip 1 , equip 2 ,..........equip 100], only shows 2 here for example)
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Equipment Name-wf.jmp";
dt = Open(filepath,invisible);
//dtNames = Data Table( "Equipment Name-wf" );
//dt = Data Table( "Untitled 90 (1)" );
doListChoice = Expr(
choice = myListbox << getSelected; // choosing the equipment name from the drop down list
Tool_time_wf( "week", choice ); //does not work
);
//Tool_time_wf(week column, tool name in string quotes works);
Tool_time_wf = Function( {xvar, yvar},
bivExpr = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( Eval( xvar ) ), Y( Eval( yvar ) ) ),
Elements( Bar( X, Y ) )
)
);
myList = Column( Data Table( "Equipment Name-wf" ), 1 ) << Get Values;
myListbox = Combo Box( myList, doListChoice );
//@@//showing drop down -works-st
New Window( "Show List",
Text Box(
" Please select a TOOL/MACHINE from the drop down menu:",
<<FONT color=""></FONT>Re : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéBonjour txnelson, excuses de ne pas avoir clarifié la demande.
L'utilisateur doit sélectionner les noms d'équipement (équipement 1 ou équipement 2 ..... ou équipement 100), et non le numéro de semaine dans la liste déroulante.
Pour la liste/le tableau qui générera la liste déroulante, veuillez consulter le 'Nom de l'équipement-wf' tableau jmp.
Une fois le nom de l'équipement sélectionné dans la liste déroulante (générée via le 'Nom de l'équipement-wf'); la fonction doit utiliser ce nom d'équipement ; aller dans le table de données principale 'Sans titre 90' (où les données hebdomadaires des équipements sont tabulées) ; puis tracez la semaine souhaitée par rapport à équipe # tracé comme indiqué dans la pièce jointe 'équipement souhaité par rapport à la semaine' fichier d'image.
s'il vous plaît laissez-moi savoir si vous avez d'autres questions / préoccupations. merci d'avoir examiné cela. J'ai de nouveau téléchargé le code .jsl avec des commentaires supplémentaires "snippet v2".
Re : Comment prendre des arguments de fonction dans une liste déroulante pour utiliser le même argument dans un tracéJ'ai besoin d'un peu plus d'aide pour comprendre ce que vous essayez de faire. Pourriez-vous produire le graphique que vous vous attendez à afficher, si l'utilisateur avait sélectionné, disons "W06" dans la liste déroulante ?