Finestre nascosteSalve, ho un problema con le finestre JMP che si aprono dietro altre applicazioni (non JMP) quando eseguo un mio componente aggiuntivo. La seguente sequenza di passaggi mostra il problema che si verifica sul mio laptop:
- Apro JMP e apro anche un set di dati JMP.
- Ora apro qualche altra applicazione (ad esempio PowerPoint) e la ingrandisco (quindi né la finestra Home di JMP né la finestra contenente il set di dati sono immediatamente visibili).
- Faccio qualcosa in PowerPoint (es. Modifico una diapositiva o altro) ma poi voglio tornare alla mia analisi in JMP. Quindi, lasciando PowerPoint aperto e ingrandito, passo il mouse sull'icona di JMP nella parte inferiore dello schermo e seleziono la finestra contenente il set di dati che voglio analizzare. Questa finestra ora si trova sopra PowerPoint (sebbene la finestra iniziale di JMP sia ancora nascosta dietro a Presa della corrente).
- Ora voglio eseguire il mio componente aggiuntivo, quindi lo seleziono dal menu nella parte superiore della finestra del set di dati. La prima cosa che fa il mio componente aggiuntivo è presentare una finestra di dialogo modale, invitandomi a selezionare le colonne della mia tabella dati che voglio analizzare, dopodiché faccio semplicemente clic sul pulsante "OK" per procedere. Quando chiamo il componente aggiuntivo, viene effettivamente visualizzata la finestra di dialogo modale ... ma sia esso che la finestra contenente il set di dati scompaiono immediatamente dietro PowerPoint (dando l'impressione all'utente che l'applicazione sia appena andata in crash).
Noto che se invece di aprire il componente aggiuntivo dalla finestra del set di dati, porto la finestra Home di JMP in primo piano primo e quindi eseguire il componente aggiuntivo da una delle finestre, il problema non si verifica (o per essere rigorosamente accurati, la finestra dei dati scompare ancora dietro PowerPoint, ma la finestra di dialogo modale rimane in primo piano e successivamente vengono visualizzati i risultati dell'analisi anche in alto).
Penso che sia la soluzione potrebbe essere quello di inserire uno script di avvio di una riga nel componente aggiuntivo che rende la finestra iniziale di JMP la finestra corrente (ovvero spostandola davanti a qualsiasi altra applicazione aperta) prima di iniziare l'analisi, ma noto che la funzione Ottieni elenco finestre non include la finestra principale di JMP all'interno dell'elenco, quindi non posso farvi riferimento in questo modo.
Qualcuno può suggerire come posso risolvere questo problema? (Potrei ovviamente dire a tutti gli utenti di non utilizzare il componente aggiuntivo nel modo descritto sopra, ma preferirei di gran lunga evitare che il problema si verifichi tramite script, se possibile.)
Grazie molto.
Tabella datiScriptingRi: Windows nascostoNon sono stato in grado di replicarlo su JMP 15.2.1 su Windows.Ecco come chiamo la maggior parte delle finestre all'interno dei menu per i componenti aggiuntivi, forse c'è qualcosa di diverso da quello che stai usando?
All'interno di 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>
e da qualche parte all'interno del file addinAbout.jsl c'è una funzione New Window ().
Ri: Windows nascostoCiao IH,
Solo per confermare, lo sto eseguendo in MS Windows (non so se lo stesso problema è evidente su un Mac) e nel caso in cui la versione sia pertinente, sto eseguendo JMP 15.0.2, quindi il mio è precedente al tuo JMP 15.2.1 - ma ho accesso a JMP 16EA versione 8 e vedo lo stesso comportamento anche lì.
In poche parole, se la finestra iniziale di JMP è nascosta dietro un'applicazione Windows non JMP completamente ingrandita (la chiamerò semplicemente "X", poiché non sembra fare alcuna differenza quale applicazione sia) quando l'aggiunta -in viene eseguito, quindi qualsiasi finestra di output generata dal componente aggiuntivo viene nascosta anche dietro X. Da quanto sopra deduco che se potessi trovare un modo per portare immediatamente in primo piano la finestra iniziale di JMP ogni volta che viene eseguito il componente aggiuntivo, il problema sarebbe risolto.
Ho provato a confrontare la struttura dell'addin.jmpcust che hai postato con quella generata dall'Add-In Builder che ho usato, ma la mia è notevolmente più lunga e non so esattamente cosa sto cercando, quindi ho sospetto che dovrò creare una versione del componente aggiuntivo che sia ridotta fino all'osso, e poi chiedere di nuovo aiuto - allegando una copia dello script JSL - quando l'ho fatto.
Sono profondamente consapevole che qualcosa di simile è quasi impossibile da diagnosticare se non può essere replicato, quindi riferirò quando avrò qualcosa di più concreto su cui andare avanti.
Molte grazie per il vostro aiuto.
Ri: Windows nascostoOra ho risolto il problema delle finestre nascoste, quindi contrassegnerò questo problema come risolto quando lo pubblicherò.
Solo per la cronaca, il problema era causato dal fatto che la tabella dei dati era stata ridotta a icona (cosa che avevo fatto puramente per scopi cosmetici) prima che venisse richiamata la finestra di dialogo di selezione della colonna. Se qualcuno si imbatte in un problema simile in futuro, il seguente breve script può aiutare a identificare la causa. Dovrebbe essere compilato in un componente aggiuntivo e quindi richiamato dal menu principale sopra la tabella dei dati ( non dalla finestra iniziale di JMP) una volta che la tabella dati è stata aperta dalla barra delle applicazioni di 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
================
*/