Comment stocker une valeur saisie dans une zone de texte en tant qu'objet en JSL ?Bon, je suis perplexe et je me suis finalement résigné au fait que je n'en sais pas assez sur JSL pour faire ça moi-même. Je suis encore assez nouveau dans JSL, mais je veux simplifier les choses pour les gens avec qui je travaille. J'ai un script construit qui se rapproche de ce que je veux, je n'arrive tout simplement pas à comprendre comment faire en sorte que ma fonction de sélection de ligne utilise des informations saisies manuellement dans une zone d'édition de texte.
L'objectif est de faire en sorte qu'un utilisateur appuie sur un bouton Journal qui fera apparaître une fenêtre avec une zone de texte dans laquelle il peut saisir des informations. Ensuite, il pourra appuyer sur la zone de bouton directement sous le champ d'édition qui exécutera un script pour sélectionner les lignes contenant la chaîne de texte qu'il a saisie. J'ai collé ce que j'ai jusqu'à présent, mais je sais qu'il y a une déconnexion avec les lignes 6 et 9. Mon intention était d'assigner la saisie de la zone d'édition de texte en tant qu'objet, mais je pense que c'est là que je me trompe. Je n'arrive tout simplement pas à concilier la manière de saisir les informations saisies dans la zone d'édition de texte avec la partie de sélection de ligne. Merci beaucoup pour toute aide !
Lot Identifier = New Window("Assay Identifier by Lot Tested",<BR />Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ), <BR />vlistbox(<BR />H Center Box(Text Box("Input Lot ID")),<BR />Spacer Box(size(1,10)),<BR />H list box( text box("Lot: "), ID=Text Edit Box()),<BR />H Center Box(<BR />Button Box("Select Rows with Lot Number", Current Data Table() << Row Selection(<BR />Select where( Contains( :assay, ID ) ),<BR />Match case( 0 ),<BR />Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )<BR />)))<BR />)<BR />)<BR />)FenêtresRe : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Je n'ai aucune idée de la raison pour laquelle le JSL est formaté comme ça, mais voici juste un copier/coller direct :
Identifiant du lot = Nouvelle fenêtre (« Identifiant du test par lot testé »,
Zone de bordure (haut (10), bas (10), gauche (120), droite (120),
liste de v(
Zone centrale H (zone de texte (« ID de lot d'entrée »),
Boîte d'espacement (taille (1,10)),
Zone de liste H (zone de texte ("Lot : "), ID = Zone d'édition de texte()),
Boîte centrale H (
Boîte de boutons (« Sélectionner les lignes avec le numéro de lot », tableau de données actuel() << Sélection de ligne(
Sélectionnez où (Contient ( :essai, ID)),
Correspondance des cas (0),
Boîte de dialogue (Modifier (Contient (Colonne source (: essai))), Garder la boîte de dialogue ouverte (0))
)))
)
)
)
Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Il existe plusieurs façons de procéder. En voici une :
New Window( "Example: Text Edit Box",
Outline Box( "Enter a string", H List Box( Text Box( "String:" ), value = Text Edit Box( "" ) ) ),
);
txtValue = value << Get Text();
print(txtValue);
Utilisez la zone d'édition numérique () si vous souhaitez capturer un nombre au lieu d'un texte.
Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Pour une raison quelconque, cela ne fonctionne pas pour moi. Je veux que tout ce qui est tapé dans la zone de texte devienne ensuite le terme utilisé dans la fonction Row Selection(). Néanmoins, j'apprécie l'information. Il se pourrait très bien que je ne l'implémente pas correctement. J'ai réorganisé la formule comme suit :
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Select Assays By Lot", Lot ID = Lot << get text() ) )
)
)
);
Current Data Table() << Row Selection(
Select where(
Contains( :assay, Print( Lot ID ) ),
Dialog( Edit( Contains( Source Column( :assay ) ) ), Keep dialog open( 0 ) )
)
);
Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?pour entrer du code JSL, il y a ce bouton dans l'éditeur :

pour éditer un message, utilisez le triangle à droite du message et cliquez sur « Modifier la réponse » :

Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Oui, c'est comme ça que je l'ai entré dans le premier message. Mais quand j'ai appuyé sur « publier », tout s'est gâté. J'ai compris la fonction d'édition plus tôt dans la journée, mais je me suis dit que cela ne valait pas la peine de s'en soucier
Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?J'ai pu le faire fonctionner partiellement grâce à vos commentaires, @mzwald , merci encore. Le script ci-dessous est ce que j'ai et il nécessite simplement que j'aie deux boutons au lieu d'un (ce qui est plutôt malheureux). Le premier bouton attribue le texte à un objet, puis le second exécute le script qui identifiera les lignes contenant le texte (stocké sous forme d'objet). Si je peux comprendre comment attribuer deux fonctions à un bouton, je serai content, mais j'ai au moins quelque chose qui fonctionne pour l'instant.
Assay Identifier = New Window( "Assay Identifier by Lot",
Border Box( top( 10 ), bottom( 10 ), Left( 120 ), Right( 120 ),
V List Box(
H Center Box( Text Box( "Input Lot ID" ) ),
Spacer Box( size( 1, 10 ) ),
H List Box( Text Box( "Lot: " ), Lot = Text Edit Box() ),
H Center Box( Button Box( "Set", Lot ID = Lot << get text() ) ),
H Center Box(
Button Box( "Select", Current Data Table() << Row Selection( Select where( Contains( :assay, Lot ID ) ) ) )
)
)
)
);
Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Vous pouvez simplement ajouter tout ce qui se trouve dans le même script dans une boîte à boutons. N'oubliez pas de les "coller" ensemble avec ;
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Assay Identifier = New Window("Assay Identifier by Lot",
Border Box(top(10), bottom(10), Left(120), Right(120),
V List Box(align("Center"),
Text Box("Input Lot ID", << Set Font Size(16)),
Spacer Box(size(1, 10)),
H List Box(
Text Box("Lot: "),
Lot = Text Edit Box("", << Set Width(200), << Set N Lines(5))
),
Button Box("Select",
Lot ID = lowercase(lot << get text);
If(!Is Missing(Lot ID),
Current Data Table() << Row Selection(Select where(Contains(lowercase(:name), Lot ID)))
)
)
)
)
);
La page d'aide de JMP contient une bonne documentation sur JSL. Par exemple pour la boîte à boutons
Et l'index de script (à partir du menu d'aide de JMP) est très utile une fois que vous vous êtes habitué à l'utiliser (vous pourriez trouver cela utile Du bureau de Jarmo : Utilisation de l'index de script comme recherche JMP® pour une utilisation plus efficace de l'index de script)

Re : Comment stocker une valeur saisie dans une zone de texte en tant qu'objet dans JSL ?Merci pour ça. J'avais essayé de faire fonctionner la fonction de collage la semaine dernière, mais pour une raison quelconque, j'ai dû avoir un pet de cerveau. Tout va bien maintenant
. Merci à tous ceux qui m'ont aidé à y arriver !