code de retard jusqu'à ce que l'application soit terminéeJ'ai un script dans lequel je pose d'abord une question oui/non dans une boîte de dialogue, si l'utilisateur marque "oui", alors une section de code s'exécute et extrait des données d'une base de données qui est ensuite utilisée pour créer une application. Dans cette application, l'utilisateur interagit avec les données (tableau et tracés) pour produire un formulaire PDF, finaliser ces documents, fermer l'application, puis passer à la station suivante à laquelle vous obtenez la même question oui/non mais pour un emplacement différent. Le problème est que si je sélectionne oui, le code s'exécute et crée l'application (tout va bien), mais passe ensuite à la boîte de dialogue suivante. Une fois que cette boîte de dialogue apparaît, je ne peux pas interagir avec mon application. Comment puis-je coder cela pour que la boîte de dialogue suivante n'apparaisse pas tant que je n'ai pas terminé mon application ?
Événement = dialogue (« Y a-t-il des échantillons sur le site A ? »,
Vlist(Lineup(1,eventtype=radio buttons("Oui","Non"),)));
Si(Événement["type d'événement"] == 1,(
//Si l'utilisateur sélectionne oui, le code de ce site s'exécute pour produire une application avec des graphiques et des tableaux (voir l'exemple ci-dessous). L'utilisateur doit sélectionner des points dans le graphique, générer un formulaire PDF, puis fermer l'application avant de continuer.
);
);
Dans cette capture d'écran, vous pouvez voir un bouton indiquant « Terminer ». Je ne souhaite pas que ma prochaine boîte de dialogue apparaisse avant que vous ayez cliqué sur ce bouton.

Exécution de JMP 16.2.0
Automatisation et scriptsExploration et visualisation des donnéesRe: code de retard jusqu'à ce que l'application soit terminéeVous pouvez par exemple ajouter l'expression pour créer la boîte de dialogue suivante à l'intérieur du bouton Terminer
Re: code de retard jusqu'à ce que l'application soit terminéeC'est une bonne idée, mais j'ai joué avec le code et je n'arrive pas à comprendre comment le faire fonctionner. Lorsque je mets la boîte de dialogue à l'intérieur du bouton Terminer, le code construit cette application, puis avant que je puisse interagir avec elle, passe au cycle suivant pour construire celle de l'emplacement suivant. J'ai besoin d'avoir un moyen de mettre le code en pause lorsque l'application a fini de se construire et de la redémarrer automatiquement une fois que j'ai appuyé sur le bouton Terminer. Je ne sais pas si cela sera utile, mais je joins du code. Le premier dialogue arrive à la ligne 5, puis si vous sélectionnez oui, il extraira les données de notre serveur interne. Cela ne fonctionnera pour personne d'autre (lignes 24 - 638), puis l'application est construite à partir de la table de données que le code précédent a construite. (646 - 1069), puis le code se répète mais pour un ensemble de données différent (ligne 1080).
Re: code de retard jusqu'à ce que l'application soit terminéeJe ne suis pas très familier avec les applications/tableaux de bord JMP (je les crée toujours moi-même pour avoir un contrôle total), mais vous voudriez que la section après 1080 ne soit pas exécutée tant que l'utilisateur n'appuie pas sur « Terminer ».
Re: code de retard jusqu'à ce que l'application soit terminéeJ'ai trouvé une « solution ». J'ai simplement mis une commande d'attente avant la ligne 1080
If( Event["eventtype"] == 1,
wait(30);
);donc si « Oui » a été sélectionné plus tôt, il sait que j'ai généré une application et que j'ai besoin de temps pour interagir avec elle. Cela donne à l'utilisateur 30 secondes pour terminer cette action, « terminer » et ensuite il passera au composant suivant du script... c'est une solution fonctionnelle bien que ce ne soit pas ce que j'aurais préféré. Cela met certainement l'utilisateur « sur la touche ». Je vais devoir jouer avec le temps d'attente pour trouver un juste milieu. Merci pour votre aide... ça m'a fait réfléchir.
Re: code de retard jusqu'à ce que l'application soit terminéeJe vous ai envoyé un message dans lequel je montre ce que j'aurais pu faire. Je déplacerais essentiellement la deuxième partie du script dans l'expression (je ferais d'autres séparations pour améliorer la lisibilité, mais cela devrait être la seule "nécessaire"), puis j'ajouterais cela à la fonction/script button5. Cela déclencherait l'expression lorsque le bouton button5 est enfoncé. Cette option peut nécessiter un travail supplémentaire en fonction de la manière dont les portées et les espaces de noms sont gérés.