JSL pour sélectionner l'onglet Projet et exécuter le scriptGens,
Je suis tout nouveau dans le travail avec des projets et j'ai quelques difficultés à réaliser diverses choses que je fais régulièrement en JSL.Mon projet comporte 4 tables de données et j'essaie d'en sélectionner une, puis d'exécuter un script particulier répertorié dans cette table de données.J'ai consulté les informations d'aide pour les projets, mais je n'arrive pas à comprendre comment y parvenir.Toutes les suggestions/idées seraient grandement appréciées.
Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptDe plus, vous ne devriez pas avoir besoin de messages Run Script distincts pour chaque bloc. Je l'ai juste fait pour plus de lisibilité. Cependant, vous aurez peut-être besoin de l'appel wait(0) si vous essayez d'ouvrir quelque chose et de définir immédiatement le focus dessus, sinon l'onglet n'aura peut-être pas fini de se charger au moment où nous essayons de l'avancer.Re : JSL pour sélectionner l'onglet Projet et exécuter le script
@terapin a écrit:
Bon sang,
C'était facile.Je ne savais pas que je devais utiliser Run Script pour chaque commande ou ensemble de commandes.
Cela fonctionne maintenant très bien, sauf qu'il est possible de transmettre une variable comme nom de fenêtre ou de table de données. J'utilise JSL pour traiter les données de nombreux sites et j'extrait l'identifiant du site du fichier de données ouvert, puis je l'utilise dans de nombreuses autres sections de JSL pour enregistrer, renommer, déplacer les fichiers de données vers des répertoires spécifiques au site.Malheureusement, je ne peux pas transmettre ma variable, stn, dans les noms de fenêtre ou de table de données, comme indiqué ci-dessous.Est-il possible de faire cela avec des projets, et si oui, avez-vous une suggestion sur la façon d'y parvenir ?
Projet << Exécuter le script (Obtenir la table de données (stn || " Amp_Hr Per Day" ) ); << Run Script( "OP des paramètres avec PAR" );
Projet << Exécuter le script (Obtenir la fenêtre ( stn || " Amp_Hr Per Day" ) << Amener la fenêtre au premier plan() );
Il est intentionnel que les projets aient leurs propres étendues JSL, mais cela peut entraîner des problèmes lors de la tentative de partage de variables entre eux. Une façon de procéder consiste à utiliser Eval/EvalExpr. Ce n'est pas joli, mais ça fait l'affaire :
win name = "Big Class";
Eval(
Eval Expr(
project << Run Script( Get Window( Expr( win name ) ) << Bring Window To Front() )
)
);
Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptBon sang,
C'était facile.Je ne savais pas que je devais utiliser Run Script pour chaque commande ou ensemble de commandes.
Cela fonctionne maintenant très bien, sauf qu'il est possible de transmettre une variable comme nom de fenêtre ou de table de données. J'utilise JSL pour traiter les données de nombreux sites et j'extrait l'identifiant du site du fichier de données ouvert, puis je l'utilise dans de nombreuses autres sections de JSL pour enregistrer, renommer, déplacer les fichiers de données vers des répertoires spécifiques au site.Malheureusement, je ne peux pas transmettre ma variable, stn, dans les noms de fenêtre ou de table de données, comme indiqué ci-dessous.Est-il possible de faire cela avec des projets, et si oui, avez-vous une suggestion sur la façon d'y parvenir ?
Projet << Exécuter le script (Obtenir la table de données (stn || " Amp_Hr Per Day" ) ); << Run Script( "OP des paramètres avec PAR" );
Projet << Exécuter le script (Obtenir la fenêtre ( stn || " Amp_Hr Per Day" ) << Amener la fenêtre au premier plan() );
Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptUtilisez Project << Run Script() pour exécuter JSL à l'intérieur du projet depuis l'extérieur :
// 1. Create a project and open two data table in it
p = new Project();
p << Run Script(
Open("$SAMPLE_DATA/Big Class.jmp");
Open("$SAMPLE_DATA/Airline Delays.jmp");
);
// 2. Run the a saved script from each table
p << Run Script(
Get Data Table("Big Class") << Run Script("Distribution");
Get Data Table("Airline Delays") << Run Script("Graph Builder Heatmap");
);
// 3. Optionally, make Big Class the visible tab
wait(0);
p << Run Script(
Get Window("Big Class") << Bring Window To Front();
);
Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptSalut Aaron,
J'essaie d'utiliser JSL pour travailler avec mais en dehors d'un projet existant.Autrement dit, avec un projet ouvert, je souhaite exécuter un script externe qui sélectionne un onglet particulier et exécute un script enregistré avec cet onglet.Par exemple, avec les tableaux de données Big Class, Abrasion et Bicycle Moved to a Project (j'ai essayé d'envoyer ma version archivée de ce projet mais une erreur dit "Le contenu de la pièce jointe ne correspond pas à son type de fichier"), je veux un fichier JSL enregistré en dehors du projet pour ouvrir le projet, sélectionner Tab Big Class, exécuter le script de distribution, passer à Tab Bicycle et exécuter le script Fit Model.Je peux ouvrir le projet sans aucun problème, mais je ne peux pas accomplir le reste.
Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptÀ quelques exceptions près, les scripts JSL fonctionneront de la même manière dans les projets qu’auparavant. Donc, si vous avez JSL qui fait déjà ce dont vous avez besoin, exécuter ce JSL à partir d’un onglet de projet est probablement tout ce que vous avez à faire. S'il y a des erreurs ou si cela ne fonctionne pas comme prévu, je peux essayer de vous aider à les résoudre.Re : JSL pour sélectionner l'onglet Projet et exécuter le scriptPour clarifier, souhaitez-vous utiliser JSL dans des projets pour faire quelque chose que vous faites habituellement avec JSL en dehors des projets, ou utiliser l'interface graphique dans les projets pour faire ce que vous faites normalement en JSL ?