<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai un script écrit pour obtenir l'entrée de l'utilisateur au début / date et heure d'arrêt des données de production.Dans la fenêtre , il y a deux boutons , un OK et Annuler.Tout ce qui est associé à la sortie après avoir entré les données et cliqué sur OK est correct.Les problèmes sont avec le bouton Annuler.Pour un , Je lisais ce Throw () sortira du script.Si vous exécutez l'exemple ci-dessous , cliquer sur annuler affichera le "Appuyé sur Annuler" date au journal , mais il affichera également le "ContinuerDateHeure" et corriger "Bouton enfoncé" Les données , qui doit être ignoré en raison du lancer.
Une autre "problème" est la possibilité de changer l'orthographe du mot annuler ( c'est-à-dire annuler ) et le bouton ne fonctionne plus.Si vous cliquez dessus , Rien ne se passe.Pas que ce soit un gros problème , juste étrange et quelque chose que je ne peux pas expliquer.
En tous cas , ci-dessous est un échantillon de mon code ; toute aide est grandement appréciée.
Nouvelle fenetre ( "Dates et heures des rapports" , << Modal ,
Zone de liste V (
Zone de liste V (
Zone de texte ( " Sélectionnez les dates et heures de début et de fin " ) ,
Zone de texte ( "" ) ,
Zone de texte ( " Format de date AAAA-MM-JJ " ) ,
Zone de texte ( " Format d'heure HH-MI-SS-ss " ) ) ,
H Zone de liste (
Zone de liste V (
Zone de texte ( "" ) ,
Zone de texte ( "Date de début " ) ,
date1 = Zone d'édition de texte ( "2013-04-01" ) ) ,
Zone de liste V (
Zone de texte ( "" ) ,
Zone de texte ( "Fin" ) ,
date2 = Zone d'édition de texte ( "2013-04-05" ) ) ) ,
H Zone de liste (
Zone de liste V (
Zone de texte ( "" ) ,
Zone de texte ( "Temps de départ" ) ,
temps1 = Boîte Radio ( { " 5:00 DU MATIN " , " 17H00 " ,
"Premier article" , " Manuel " } ) ,
temps1m = Zone d'édition de texte ( "05-00-00-00" ) ,
Zone de texte ( "" ) ) ,
Zone de liste V (
Zone de texte ( "" ) ,
Zone de texte ( "Heure de fin" ) ,
temps2 = Boîte Radio ( { " 5:00 DU MATIN " , " 17H00 " ,
"Dernier élément" , " Manuel " } ) ,
temps2m = Zone d'édition de texte ( "17-00-00-00" ) ,
Zone de texte ( "" ) ) ) , ) ,
H Zone de liste ( Zone de texte ( " " ) ,
Boîte à boutons ( "D'ACCORD" ,
AppuyéOk = MDYHMS ( Aujourd'hui () ) ;
Afficher ( AppuyéOk ) ;
ButtonPressed = "Appuyé sur le bouton OK" ; ) ,
Boîte à boutons ( "Annuler" ,
Appuyez sur Annuler = MDYHMS ( Aujourd'hui () ) ;
Afficher ( Appuyez sur Annuler ) ;
ButtonPressed = "Appuyé sur le bouton Annuler" ;,
Jeter ( ) ; ) ) ) ;
ContinueDateHeure = MDYHMS ( Aujourd'hui () ) ;
Afficher ( ContinueDateHeure ) ;
Afficher ( ButtonPressed ) ;
L'argument texte de la fonction throw() apparaîtra dans le journal, si elle est appelée.Utile pour le débogage.
Merci pour la réponse, c'est ce que j'ai fini par faire.Je pensais que vous pourriez intégrer le throw() dans l'évaluation du bouton et quitter complètement le script.Je ne sais pas quel est le but d'inclure "texte" avec le lancer, à moins qu'il ne stocke le texte dans une variable.Cela serait peut-être utile dans un script plus volumineux avec plusieurs points de sortie afin de consigner l'endroit où un script se termine (?).
Encore une fois, merci pour l'aide, c'est très apprécié.
Steve
Vous n'avez pas besoin de throw() pour votre logique de bouton d'annulation.Lorsque vous appuyez sur Annuler, la boîte de dialogue se ferme automatiquement, car il s'agit d'une boîte de dialogue modale.
Les boîtes de dialogue modales vous fourniront un bouton OK et Annuler si vous ne les fournissez pas.La seule façon de quitter une boîte de dialogue modale est d'appuyer sur les boutons OK ou Annuler.
Si vous voulez plus de contrôle, supprimez le << modal().Cependant, une boîte de dialogue non modale permettra aux utilisateurs d'effectuer d'autres opérations dans JMP lorsqu'ils sont ouverts, ce que vous ne souhaitez peut-être pas.
Si vous souhaitez quitter le script si l'utilisateur appuie sur Annuler, effectuez la vérification et throw () en dehors de la boîte de dialogue.
Boîte à boutons ( "Annuler" ,
Appuyez sur Annuler = MDYHMS ( Aujourd'hui () ) ;
Montrer ( Appuyez sur Annuler ) ;
ButtonPressed = "Appuyé sur le bouton Annuler" ;
)
)
) ;
ContinueDateHeure = MDYHMS ( Aujourd'hui () ) ;
Montrer ( ContinueDateHeure ) ;
Montrer ( ButtonPressed ) ;
si ( bouton enfoncé == "Appuyé sur le bouton Annuler" ,
jeter ( "Appuyé sur le bouton d'annulation" ) ;
) ;