La fenêtre du rapport ne se ferme pasJ'ai un script que j'essaie de configurer et qui, une fois exécuté, affiche une interface graphique interactive qui ressemble à ceci :

Je peux renseigner le numéro de lot et le seul bouton qui fonctionne pour le moment est celui "Écran CPL".Je clique dessus et il produit un rapport indiquant si les plaquettes de ce lot ont dépassé les limites de contrôle.S'il y a des codes d'erreur ou des valeurs très élevées dans les données, une boîte à boutons est ajoutée au rapport demandant si l'utilisateur souhaite que ces valeurs soient supprimées et que le filtrage soit refait.

J'ai configuré le bouton à l'endroit où il est censé fermer la fenêtre de rapport actuelle et le tableau de données qui lui est associé et réexécuter le même "écran CPL" qu'au début après avoir supprimé les mauvaises données.Le seul problème est que lorsque je clique sur le bouton Réexécuter, la fenêtre d'origine se ferme et le rapport ne se termine pas.
Je peux physiquement accéder au script et mettre en surbrillance le code connecté au bouton et le script fonctionne correctement.Cela ne fonctionne pas si je clique réellement sur le bouton.Voici à quoi ressemble la liste des fenêtres lors du premier passage :

Voici à quoi cela ressemble lorsque je clique sur le bouton Réexécuter :

Il semble que le rapport d'origine ne se ferme pas avant l'ouverture du nouveau.Je suis perplexe étant donné que je peux physiquement exécuter le même code et que tout fonctionne.Ce qui suit est un organigramme suedo de ce que fait le script :

Toute aide serait très appréciée
Re : La fenêtre de rapport ne se ferme pasLe bouton et toutes ses propriétés, y compris son script, sont un enfant d'une arborescence d'affichage. L'arborescence d'affichage est contenue dans la fenêtre. Lorsque vous fermez la fenêtre, le bouton et son script sont détruits. Cela provoquerait une erreur – potentiellement très grave – si c'est le script du bouton qui ferme la fenêtre. Ainsi, JMP surveille cela et s'assure que la fenêtre est masquée mais attend que le script du bouton se termine.
Voici un script pour démontrer ce comportement. Regardez la liste des fenêtres dans votre fenêtre d'accueil pour le voir :
win1 = New Window( "Window 1",
V List Box(
Button Box( "Close window 1 and open window 2",
win1 << close window;
win2 = New Window( "Window 2",
<<MODAL></MODAL>
Re : La fenêtre de rapport ne se ferme pasJ'ai compris que si vous placez un bouton dans la fenêtre du rapport qui ferme cette fenêtre et continue avec plus de script, la fenêtre contenant le bouton ne se ferme pas complètement. Mais si vous placez un bouton en dehors de la fenêtre du rapport qui exécute exactement le même script, tout fonctionne correctement. Je ne sais pas exactement pourquoi et j'ai dû modifier un peu mon script pour compenser, mais au final, il fonctionne désormais bien.Re : La fenêtre de rapport ne se ferme pasLe code pour ajouter le bouton à la fenêtre de rapport est donc :
if(errors_exist == 1 | large_value == 1,
error_box << append(Button box("Remove Erroneous Data and Rerun Analysis",redo_analysis))
)
Le code de redo_analysis est le suivant :
redo_analysis = expr(//if the user wants to eliminate error codes or large data values need to redo the screening and remove the issue points
close(dt_screen_results, nosave);
re_run = 1; //boolean flip to not have the script pull data from the database again
screen_result_window << close window;
//wait(5);
column(dt_lot, "Screen Results") << set selected(1);
dt_lot << delete columns();
if(errors_exist == 1, //deletes the error code rows
dt_lot << selectrows(error_rows)
);
if(large_value == 1,//deletes the large value rows
dt_lot << selectrows(large_values)
);
dt_lot << delete rows()
CPL_screen
//window(char(lot_num << get text) || " CPL Results Summary") << close window;
);
Si j'appuie sur le bouton dans le rapport, le problème persiste. Si je n'appuie pas sur le bouton mais que je mets en surbrillance redo_analysis dans le script et que j'exécute cette partie, tout fonctionne bien.
Re : La fenêtre de rapport ne se ferme pasL'ouverture d'une fenêtre dans JMP n'arrête pas automatiquement le traitement de votre script.Il faut soit déclarer la fenêtre comme étant une fenêtre "Modale", soit intégrer le code à exécuter dans les objets de la fenêtre, afin qu'ils ne soient pas exécutés jusqu'à ce qu'un utilisateur clique sur un bouton ou fasse un choix dans une liste déroulante, etc.
Donc, je suppose que votre code JMP continue le traitement pendant que votre fenêtre est ouverte et que vous pensez que le traitement attend la saisie de l'utilisateur avant de continuer.
Re : La fenêtre de rapport ne se ferme pasAprès plus de manipulations, il semble que le script ne s'exécute pas dans l'ordre que je pensais devoir. Je pensais que le script exécuterait les choses de manière séquentielle, car la ligne 10 serait exécutée, puis passerait à la ligne 11 et l'exécuterait. J'ai constaté que même si j'avais la ligne de rapport << close window() sur une ligne au début de la partie réexécutée, le script n'exécute pas complètement cette ligne tant que le script n'est pas complètement terminé. La fenêtre deviendra masquée mais ne se fermera pas complètement jusqu'à ce que la nouvelle fenêtre soit ouverte. Puisque j'ai un additif < Avez-vous une idée des raisons pour lesquelles JMP fait cela et de ce que je peux faire pour atténuer ce problème ? J'ai oublié de mentionner que j'utilise JMP 12.