Fenêtres cachéesSalut - J'ai un problème avec les fenêtres JMP qui s'ouvrent derrière d'autres applications (non-JMP) lorsque j'exécute un de mes compléments. La séquence d'étapes suivante illustre le problème tel qu'il se produit sur mon ordinateur portable:
- J'ouvre JMP et j'ouvre également un ensemble de données JMP.
- J'ouvre maintenant une autre application (par exemple PowerPoint) et la maximise (donc ni la fenêtre d'accueil JMP ni la fenêtre contenant l'ensemble de données ne sont immédiatement visibles).
- Je fais quelque chose dans PowerPoint (par exemple éditer une diapositive ou autre) mais je veux revenir à mon analyse dans JMP. Alors, laissant PowerPoint ouvert et maximisé, je passe la souris sur l'icône JMP en bas de l'écran et je sélectionne la fenêtre contenant l'ensemble de données que je souhaite analyser. Cette fenêtre se trouve maintenant au-dessus de PowerPoint (bien que la fenêtre d'accueil JMP soit toujours masquée derrière Power Point).
- Je veux maintenant exécuter mon complément, je le sélectionne donc dans le menu en haut de la fenêtre de l'ensemble de données. La première chose que fait mon complément est de présenter une fenêtre de dialogue modale, m'invitant à sélectionner les colonnes de ma table de données que je veux analyser, après quoi je clique simplement sur le bouton "OK" pour continuer. Lorsque j'appelle le complément, la fenêtre de dialogue modale apparaît bien ... mais elle et la fenêtre contenant le jeu de données disparaissent immédiatement derrière PowerPoint (donnant l'impression à l'utilisateur que l'application vient de planter).
Je note que si au lieu d'ouvrir le complément depuis la fenêtre de l'ensemble de données, j'apporte la fenêtre d'accueil JMP au premier plan première , puis exécutez le complément à partir de l'une ou l'autre fenêtre, le problème ne se produit pas (ou pour être strictement précis, la fenêtre de données disparaît toujours derrière PowerPoint, mais la fenêtre de dialogue modale reste en haut - et les résultats de l'analyse apparaissent par la suite en plus).
Je pense que la solution force être d'insérer un script de démarrage sur une ligne dans le complément qui fait de la fenêtre d'accueil JMP la fenêtre actuelle (c'est-à-dire en la déplaçant devant toute autre application ouverte) avant de démarrer l'analyse, mais je note que la fonction Get Window List n'inclut pas la fenêtre d'accueil JMP dans la liste - je ne peux donc pas la référencer de cette façon.
Quelqu'un peut-il suggérer comment je peux résoudre ce problème? (Je pourrais bien sûr simplement dire à tous les utilisateurs de ne pas utiliser le complément de la manière décrite ci-dessus, mais je préfère de loin empêcher le problème de se produire via le script, si possible.)
Merci beaucoup.
Tableau de donnéesScriptingRe: Fenêtres cachéesJe n'ai pas pu reproduire cela sur JMP 15.2.1 sous Windows.Voici comment j'appelle la plupart des fenêtres à l'intérieur des menus pour les compléments, peut-être qu'il y a quelque chose de différent de ce que vous utilisez?
À l'intérieur de addin.jmpcust:
<jm:command>
<jm:name>ABOUT</jm:name>
<jm:caption>About</jm:caption>
<jm:action type="path">$ADDIN_HOME(com.domain.subdomain)\addinAbout.jsl</jm:action>
<jm:icon type="none"></jm:icon>
</jm:command>
et quelque part dans le fichier addinAbout.jsl se trouve une fonction New Window ().
Re: Fenêtres cachéesSalut IH,
Juste pour confirmer, j'exécute ceci dans MS Windows (je ne sais pas si le même problème est apparent sur un Mac) et au cas où la version est pertinente, j'exécute JMP 15.0.2, donc le mien est antérieur à votre JMP 15.2.1 - mais j'ai accès à la version 8 de JMP 16EA, et j'observe le même comportement là aussi.
En un mot, si la fenêtre d'accueil JMP est dissimulée derrière une application Windows non JMP entièrement maximisée (je l'appellerai simplement "X", car cela ne semble pas faire de différence de quelle application il s'agit) lorsque l'ajout -in est exécuté, puis toute fenêtre de sortie générée par le complément est également masquée derrière X. Je déduis de ce qui précède que si je pouvais trouver un moyen de mettre immédiatement la fenêtre d'accueil JMP au premier plan chaque fois que le complément est exécuté, le problème serait résolu.
J'ai essayé de comparer la structure du fichier addin.jmpcust que vous avez publié avec celle générée par le générateur de complément que j'ai utilisé, mais la mienne est beaucoup plus longue et je ne sais pas exactement ce que je recherche, alors je Je suppose que je vais devoir créer une version du complément qui est rognée jusqu'à l'os, puis demander à nouveau de l'aide - en joignant une copie du script JSL - lorsque je l'ai fait.
Je suis parfaitement conscient qu'une telle chose est presque impossible à diagnostiquer si elle ne peut pas être reproduite, alors je ferai un rapport lorsque j'aurai quelque chose de plus concret à poursuivre.
Merci beaucoup pour votre aide.
Re: Fenêtres cachéesJ'ai maintenant résolu le problème des fenêtres cachées, donc je marquerai ce problème comme ayant été résolu lorsque je posterai ceci.
Pour mémoire, le problème était dû au fait que la table de données avait été minimisée (ce que j'avais fait à des fins purement esthétiques) avant que la boîte de dialogue de sélection de colonne ne soit appelée. Si quelqu'un rencontre un problème similaire à l'avenir, le court script suivant peut aider à identifier la cause. Cela devrait être compilé dans un complément, puis appelé à partir du menu principal au-dessus de la table de données ( ne pas depuis la fenêtre d'accueil JMP) une fois que la table de données a été ouverte à partir de la barre des tâches de Windows.
Names Default to Here(1);
fnSelectColumn = function({dt}, {default local},
new window("Column Selection", << modal(1),
clb = ColListBox(dt, all, Output = (clb << get selected), << set max selected(1))
);
Output
);
expr_Load_DT = expr(
dt = current data table();
if(type(dt)=="Empty",
dt = open(PickFile( "Select the JMP data set to be analyzed:",, {"JMP Data Files|JMP"} ));
)
);
/*
================
START OF PROGRAM
================
*/
Intro = "There's another full-screen Windows application open right now, and you've just loaded the data table you can see ";
Intro = Intro || "behind this window from the Windows Taskbar, prior to selecting a column for analysis.\!r\!rHowever, the ";
Intro = Intro || "modal window containing the column selection dialog will disappear behind the other Windows application if the ";
Intro = Intro || "data table is minimized prior to the column selection dialog being displayed. (If it hasn't, there's no problem.)";
MinimizeYN = 1;
new window("Minimize the Data Table?", << modal(1),
VListBox(
HCenterBox(BorderBox(TextBox(Intro, << padding(5)), << padding(10), << sides(15))),
SpacerBox(size(0, 10)),
rb = RadioBox({"Minimize the data table after closing this window", "Don't minimize the data table after closing this window"},
MinimizeYN = (2 - (rb << get))
)
)
);
expr_Load_DT;
dt << minimize window(MinimizeYN); // THIS line is the one that causes the problem;
Output = fnSelectColumn(dt);
Caption("(You selected \!"" || Output[1] || "\!")"); wait(1.5); caption(remove);
/*
================
END OF PROGRAM
================
*/