Possible de fermer un rapport lorsque le tableau se ferme ?Vous souhaitez savoir s'il existe une méthode pour fermer automatiquement une fenêtre contenant un rapport lorsque la table de données est fermée, en particulier en utilisant le message "<< On Close" ? Par exemple, je crée une distribution à partir d'une table de données et j'ajoute les résultats à une fenêtre avec d'autres informations importantes. Si l'utilisateur ferme la table de données, je voudrais effectuer certaines actions sur la fenêtre. Ce qui suit démontre :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
VLB
);
dt << On Close(
Show("Close script activated"); //this line is executed...
VLB << Delete Box(); //...but not this one or any following it.
Show("Remainder of script is not run...");
);
L'utilisation du message "<< On Close" semble être la réponse, mais je n'arrive pas encore à le faire fonctionner. Lorsque je ferme la table dt, la première ligne du script de fermeture s'exécute, mais pas le reste. Je reçois un message indiquant que d'autres fenêtres de rapport sont ouvertes et si je veux les fermer (cliquer sur "Tout fermer" ferme toute la fenêtre de résultat, pas seulement la distribution), et enfin un message demandant d'enregistrer ("Non"). Je soupçonne que lorsque le "X" est cliqué pour fermer la table, ma référence à VLB est supprimée avant que le script On-Close puisse être exécuté.
Je me rends compte que je pourrais créer un rapport de distribution et le mettre dans ma fenêtre à la place, mais ce serait alors statique, ce que je ne veux pas.
Des pensées?
Re : Possible de fermer un rapport lorsque le tableau se ferme ?Merci les gars. Malheureusement, je pense que je dois utiliser Names Default to Here (1) car ce script est utilisé par d'autres, mais ce soln pourrait être utile à d'autres.
J'ai pu le faire fonctionner avec la commande NDtH en faisant de ma référence VLB un global. Ce n'est pas encore idéal, mais offre quelques possibilités.
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
::VLB = VlistBox(
Distribution(Column(:Age, :Weight));
);
win = New Window("Results",
TextBox("Other things"),
::VLB
);
dt << On Close(
Show("Close script activated");
::VLB << Delete Box();
Show("Remainder of script...");
);S'il existe un moyen de faire fonctionner la fonction d'abonnement, j'aimerais bien. Il y a d'autres actions que j'aimerais effectuer sur ma fenêtre lorsque des modifications sont apportées à la table. Merci encore.
Re : Possible de fermer un rapport lorsque le tableau se ferme ?Merci Audrey ! bonne prise aussi, oui, je l'ai laissé de côté. Il est probablement logique que vlb soit local à la fenêtre de l'éditeur de script et non disponible lorsque la fenêtre de la table de données exécute onClose. Je pense qu'une demande consiste à obtenir un message dans la fenêtre du journal indiquant que vlb n'est pas défini dans le contexte de la table.
Re : Possible de fermer un rapport lorsque le tableau se ferme ?@nikles Tout d'abord, merci pour un si bon script pour reproduire le problème/la question. Il est très facile de voir ce que vous demandez.
Deuxièmement, je dois admettre que lorsque j'ai copié votre script pour la première fois pour l'essayer, je n'ai pas copié la première ligne Names Default ici (1). Il s'avère que l'omission de cette ligne fait fonctionner votre script comme vous le souhaitez. Cela pourrait être une solution de contournement si vous n'avez pas besoin de cette ligne pour limiter la portée de vos variables. (Remarque : il est certainement recommandé d'utiliser les noms par défaut ici(), mais ici, cela entraîne une sorte de problème de portée.)
Troisièmement, j'ai trouvé que le comportement était cohérent sur Mac et Windows. (Alors, @Craige_Hales , avez-vous également omis Names Default to Here(1) ?)
Quatrièmement, Craige a suggéré que dt << subscribe pourrait être une possibilité, mais je n'ai pas pu le faire fonctionner, avec ou sans Names Default to Here(1); Je continue de voir le message indiquant que d'autres fenêtres de rapport sont ouvertes et est-ce que je veux les fermer.
Enfin, je fais un suivi avec notre équipe de développement et je vois si c'est quelque chose qui devrait être résolu.
Re : Possible de fermer un rapport lorsque le tableau se ferme ?Ok - message envoyé au support technique donc j'espère qu'il y a une solution de contournement. Je ne connaissais pas la fonctionnalité "S'abonner", alors merci de l'avoir partagée. Malheureusement, cela ne fonctionne pas non plus sur mon système, probablement pour la même raison sous-jacente. Même l'exécution de "Exemple 1" dans l'entrée d'index de script pour S'abonner échoue. Je peux penser à beaucoup de scripts passés où l'utilisation de cela aurait été utile.
Re : Possible de fermer un rapport lorsque le tableau se ferme ?@Audrey_Shul
Il faudra peut-être passer par le support technique. Probablement une différence dans l'ordre dans lequel les choses se passent sur les deux systèmes d'exploitation.
https://www.jmp.com/support/help/14-2/subscribe-to-a-data-table.shtml pourrait fournir une variation suffisamment différente de onClose pour que cela fonctionne ; Je pense que dt<
J'ai utilisé report<Re : Possible de fermer un rapport lorsque le tableau se ferme ?
Hmm. Exécuté sur un Mac (Mojave 10.14.6) avec JMP Pro 14.3.0.
Re : Possible de fermer un rapport lorsque le tableau se ferme ?Je pense que votre script est correct et qu'il s'exécute sous Windows en 14.3 ; quelle version de JMP utilisez-vous ?
The platform left the windowLa plate-forme a quitté la fenêtre