Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Salut,
Je suis un débutant en JSL (JMP 13.1) et j'ai du mal avec la logique de dialogue interactif, en particulier comment extraire le contenu d'une zone d'édition de texte dans une variable.
Voici un extrait d'un script JSL qui ne fonctionne pas (c'est-à-dire que la variable "prefix" n'est pas mise à jour avec le contenu de la zone d'édition de texte "tt1).
prefix = "";
win = New Window (" TEST ",
<< Modal,
<< On Validate (
if (Is Missing (prefix),0,1);
),
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
prefix = (tt1 << Get Text) // I cannot figure out how to assign the content of "tt1" to "prefix""
),
);
Show (tt1, prefix);Merci pour votre aide.
Sincèrement,
TS
Re : Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Vous placez actuellement le script d'affectation dans une fonction qui attend des zones d'affichage.Voici les différents endroits où vous pourriez mettre la ligne :
1/ en fonction de votre code, vous validez la fenêtre en fonction de la valeur du préfixe, vous pouvez donc mettre une ligne avant le test conditionnel
2/ après l'appel de la nouvelle fenêtre, décocher le contenu de la fenêtre une fois que l'utilisateur a cliqué sur OK
3/ à l'intérieur d'un événement onClose, créé en utilisant une syntaxe similaire à onValidate (réalise la même chose que (2) mais est plus élégant et plus robuste sur les plates-formes Windows/Mac
4/ à l'intérieur d'un gestionnaire d'événements attaché à la boîte d'affichage elle-même
Étant donné que vous validez le formulaire, je choisirais la première option :
prefix = "";
win = New Window (" TEST ",
<< Modal,
<< On Validate (
prefix = tt1 << Get Text;
if (Is Missing (prefix),0,1);
),
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
),
);
Show (tt1, prefix);
Re : Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Placez le script qui définit la valeur du préfixe dans le script qui est exécuté lorsque la zone d'édition de texte est modifiée
Names Default To Here( 1 );
prefix = "";
win = New Window( " TEST ",
<<MODAL></MODAL>
Re : Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Essaye ça
win = New Window( "Set a Value in Number Edit Box",
<<MODAL></MODAL>
A la fermeture de la fenêtre modale, la valeur retournée est une liste du contenu des cases qui avaient des affectations :
win = {numberbox = 3.1415, texteditbox = "argyle", Button(1)} ;
Le bouton (1) signifie le bouton OK, -1 est le bouton d'annulation.
win["numberbox"] est un moyen de demander à la liste de rechercher l'affectation dans ses membres et de renvoyer la valeur.
Re : Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Salut Craig,
Merci pour votre aide : j'ai déjà essayé de déplacer la ligne "prefix = (tt1 << Get Text) dans l'appel Text Edit Box mais j'obtiens un message d'erreur "La zone d'affichage 'TextEditBox' ne reconnaît pas le message 'Assign ' ".
Je n'ai pas encore compris comment incorporer le commutateur de résultat de retourRe : Newb JSL Question : Comment obtenir le contenu d'une zone d'édition de texte dans une variable ?Regardez les exemples utilisant "Return Result" dans https://www.jmp.com/support/help/14-2/constructors-for-new-windows.shtml
Toujours dans votre exemple:
H List Box (
Text Box (" Define Prefix "),
tt1 = Text Edit Box (""),
prefix = (tt1 << Get Text) // I cannot figure out how to assign the content of "tt1" to "prefix""
),
les arguments tt1=... et prefix=... de HListBox sont exécutés lors de la création de la hlistbox. tt1 donne un textEditBox que HListBox conserve. Je suis à peu près certain que la valeur du préfixe, "", est ignorée par la hlistbox. Je suis loin de mon bureau, mais je pense que le textEditBox pourrait être en mesure d'exécuter du JSL comme deuxième argument lorsque la valeur change ... peut-être que vous voulez quelque chose de plus proche de tt1=texteditbox("", prefix=(tt1<Si cela fonctionne, vous n'aurez peut-être pas besoin d'utiliser "Return Result".