JSL : définissez des variables en fonction de l'entrée de l'utilisateur via une fenêtre contextuelleBonjour,
Je voudrais créer une fenêtre pop-up qui permet à l'utilisateur de définir des variables sans accéder au code. J'ai réussi à obtenir la fenêtre contextuelle pour obtenir les entrées utilisateur basées sur les messages précédents, mais je n'ai pas pu la transmettre aux variables.
Pourriez-vous s'il vous plaît m'aider avec cela?
Merci d'avance
// Indicate here the name of the input HTML table
input_table = "http://xxx.html";
// Indicate here the name you want for your JMP data table
JMP_table_name = "JMP data table";
w = New Window( "User inputs", // opens a window with a title and this content...
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Report Generator" ) ), // a second title, centered
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "input_table: " ), input_table=Text Edit Box("http://xxx.html") ), // data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H List Box( Text Box( "JMP_table_name: " ), JMP_table_name=Text Edit Box("JMP data table") ), // more data entry
Spacer Box( size( 1, 30 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "Submit", // this script runs when the button is pressed...
input_table = result["input_table"];
JMP_table_name = result["JMP_table_name"];
w << closeWindow; // close the dialog
)
)
)
)
);ScriptRe: JSL : Définir des variables basées sur l'entrée de l'utilisateur via une fenêtre pop-upIl y a quelques problèmes avec votre script.La première, c'est que vous modifiez le type de données des variables Input_table et JMP_table_name.Vous commencez avec puis définis comme des chaînes de caractères, mais vous les redéfinissez ensuite comme des champs d'affichage.
Deuxièmement, juste parce que JMP ouvre une fenêtre, n'arrête pas le traitement JSL et n'attend pas la saisie de l'utilisateur.JMP continuera simplement à traiter, à moins que la fenêtre ne soit définie comme une fenêtre modale Voir ma modification de votre script ci-dessous.Je suggère fortement que vous preniez le temps de prendre le temps de lire le Guide de script.
// Indicate here the name of the input HTML table
input_table = "http://xxx.html";
// Indicate here the name you want for your JMP data table
JMP_table_name = "JMP data table";
w = New Window( "User inputs", <<MODAL></MODAL>
Re: JSL : Définir des variables basées sur l'entrée de l'utilisateur via une fenêtre pop-upMerci beaucoup!
Merci aussi d'avoir expliqué les erreurs que j'ai commises; cela va certainement m'aider à traverser cela à l'avenir.
Passe une bonne journée!
Re: JSL : Définir des variables basées sur l'entrée de l'utilisateur via une fenêtre contextuelleBonjour,
J'ai sauté dans un problème supplémentaire.
J'ai réussi à obtenir l'ouverture de la fenêtre modale et à transmettre les nouvelles définitions de variables dans le script pour input_table et le nom JMP_table.
En allant sur la variable je vois qu'elle a été correctement mise à jour.
Ensuite, le reste de mon script est censé effectuer des actions, telles que l'ouverture de la table spécifiée par l'utilisateur (en dehors du bouton), mais il ne s'exécute pas.
J'ai essayé de mettre tout le script dans la fenêtre modale, j'ai également essayé d'ajouter un wait() mais cela n'aide pas.
Si j'exécute le script sans la fenêtre modale, cela fonctionne bien, donc le problème vient certainement de là.
Aucune idée sur la façon de résoudre ça?
Voici le code.
// Initialize variables with default values
// Number of input data tables (default = 1)
nb_join_tables = 2;
//links to the input HTML tables
input_table_01 = "http://xxx.html";
input_table_02 = "http://xxx.html";
//Create a pop up window to request user inputs for the variables
w = New Window( "User inputs", <<MODAL></MODAL>
Re : JSL : définir des variables en fonction de l'entrée de l'utilisateur via une fenêtre contextuelleJ'ai trouvé la solution. J'ai utilisé une "boîte d'édition de texte" et un "Get Text" pour une valeur numérique. J'ai modifié "Number Edit Box" et "Get" et cela fonctionne.:
// Initialize variables with default values
// Number of input data tables (default = 1)
nb_join_tables = 2;
//links to the input HTML tables
input_table_01 = "http://xxx.html";
input_table_02 = "http://xxx.html";
//Create a pop up window to request user inputs for the variables
w = New Window( "User inputs", <<MODAL></MODAL>