Salut tout le monde,
Je viens de rencontrer 2 problèmes avec mon script dans une fenêtre modale qui fonctionnait bien dans JMP14 mais dès que je suis passé à JMP16, ces 2 problèmes ont été trouvés :
1) Il y a un message d'erreur indiquant " référence de l'objet supprimé : cc << Get Selected dans l'accès ou l'évaluation de 'Glue',..... "
2) Le bouton "Annuler" affiche une erreur " Nom non résolu : bouton en cours d'accès ou d'évaluation de 'Bouton', Bouton (-1) /*###*/ "
Vous trouverez ci-dessous un script simplifié qui fonctionne correctement dans JMP14 mais pas dans JMP16. S'il fonctionne correctement, le script créera une nouvelle colonne ("Résultat") indiquant "Réussi" si la case est cochée, mais un "Échec" si la case n'est pas cochée. À propos du bouton "Annuler", s'il fonctionne correctement, il n'y aura pas de message d'erreur lorsque vous cliquez dessus, ce qui fermera la fenêtre modale.
Noms par défaut ici( 1 );
dt = Table de données actuelle ();
win = New Window( "Saisie utilisateur", << Modal, LineUpBox( Ncol( 1 ),
cchk = {"Passer"} ;
PanelBox( "Résultat",
cc = Case à cocher (cchk),
cc << Ensemble( 1, 1 ),
SpacerBox( Taille( 1, 0 ) )),
HListBox( SpacerBox(), ButtonBox( "OK" ), ButtonBox( "Annuler" )),
));
If( win["Button"] == -1, win << Fermer la fenêtre );
ctc = cc << Obtenir la sélection ;
dt << Nouvelle colonne ("Résultat", caractère, nominal);
Si (Contient (ctc, "Pass"),
dt:Résultat << Définir chaque valeur ("Pass"),
dt:Résultat << Définir chaque valeur ("Échec"));
En général, j'ai trouvé que JMP16 est un peu plus agressif pour supprimer immédiatement les boîtes d'affichage.
Cependant, la façon dont j'ai toujours utilisé Modal Windows est en utilisant le OnValider fonction - ceci est généralement réservé pour déterminer si la fenêtre doit se fermer (peut-être que toutes les entrées requises ne sont pas remplies et que vous ne voulez pas que la fenêtre se ferme via le bouton 'OK'.) Assurez-vous simplement de retourner un 1 pour une bonne fermeture des fenêtres.
Names Default To Here( 1 );
dt = Current Data Table();
win = New Window( "User Input",
<<MODAL></MODAL>
Salut, vraiment désolé pour la réponse tardive. J'ai été occupé avec le travail pendant les 2 dernières semaines. Merci pour la solution. Cela fonctionne et j'ai appris quelque chose de nouveau. J'apprécie cela !