saisie de données à partir d'une interface interactive<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
En JSL, j'aimerais créer une interface interactive où un utilisateur peut saisir des valeurs dans une colonne. La colonne doit être de type Continu.
Par exemple, l'utilisateur saisit une valeur dans une boîte de dialogue qui saisit la valeur dans une colonne :
x = Limite supérieure, y = Limite inférieure
Âge Nom UpperLimit LowerLimit
40 Pierre 30 45
Quelqu'un a-t-il des suggestions sur la façon d'y parvenir ?
-Anders
Re : Saisir des données depuis une interface interactiveSi l'édition par ligne est correcte, je voulais également mentionner ceci :
Noms par défaut ici ( 1 ) ;
// Crée la nouvelle table de données et ses colonnes
dt = Nouveau tableau ( "Limites" ) ;
dt << Nouvelle colonne ( "Limite inférieure" , Numérique , Continu ) ;
dt << Nouvelle colonne ( "Limite supérieure" , Numérique , Continu ) ;
dt << éditeur de lignes ;
Cela présente l'inconvénient de ne pas appliquer l'exigence USL > LSL, mais cela pourrait éventuellement être fait en souscrivant aux modifications apportées à « dt » (recherchez « S'abonner » dans « Aide > Index de script »). Sachez également que vous pouvez ajouter des propriétés de colonne aux colonnes du tableau. http://www.jmp.com/support/help/Expression_Data.shtml , qui incluent une « vérification de plage » sur les valeurs.
Re : Saisir des données depuis une interface interactiveMerci beaucoup, c'était précisément ce que je cherchais et bien plus encore !
Acclamations
-Anders
Re : Saisir des données depuis une interface interactiveAnders,
Si je suis ce que vous voulez, le script ci-dessous saisira les limites supérieure et inférieure et les ajoutera à un tableau de données.J'ai annoté le script pour, je l'espère, vous permettre de voir ce que fait l'exemple.
Noms par défaut ici ( 1 );
// Crée la nouvelle table de données et ses colonnes
dt = Nouvelle table( "Limites" );
dt << Nouvelle colonne( "UpperLimit", Numérique, Continu );
dt << Nouvelle colonne ( "LowerLimit", Numérique, Continue );
// Ouvre une fenêtre d'affichage dans laquelle saisir les données
InputWindow = Nouvelle fenêtre( "Entrer l'entrée",
// Ajout d'une list box verticale pour structurer la position de l'affichage
Zone de liste V (
// Ajoute de l'espace
Boîte d'espacement (taille (1, 10)),
// Afficher le texte de l'instruction
Zone de texte( "Entrez les entrées" ),
Boîte d'espacement (taille (1, 10)),
// Les affichages suivants doivent être côte à côte
Zone de liste H (
// Afficher le texte pour informer l'utilisateur des données à saisir
Zone de texte ("Entrez dans la limite inférieure"),
Boîte d'espacement (taille (10, 1)),
// Utilisez une zone d'édition numérique pour capturer les entrées des utilisateurs et
// donne à l'objet d'affichage le nom "LLimit"
LLimit = Zone d'édition de numéro ( . ),
Boîte d'espacement (taille (10, 1)),
// Afficher le texte pour informer l'utilisateur des données à saisir
Zone de texte ("Entrez dans la limite supérieure"),
Boîte d'espacement (taille (10, 1)),
// Utilisez une zone d'édition numérique pour capturer les entrées des utilisateurs et
// donne à l'objet d'affichage le nom "ULimit"
ULimit = Zone d'édition de numéro ( . )
),
Boîte d'espacement (taille (1, 10)),
// Ajout de quelques boutons de contrôle
Zone de liste H (
// La première boîte de boutons ajoutera les valeurs à la table de données, si le
// les valeurs sont valides
Boîte de boutons( "Ajouter les valeurs",
Si ( est manquant ( LLimit << get ) == 0 & est manquant ( ULimit << get ) == 0 & (ULimit << get) > (LLimit << get),
// Si les valeurs sont valides, ajoutez une ligne à la table de données et définissez les valeurs
dt << ajouter des lignes ( 1 );
dt:LowerLimit[N Lignes( dt )] = LLimit << get;
dt:UpperLimit[N Lignes( dt )] = ULimit << get;
,
// Si les valeurs ne sont pas valides, définissez-les comme manquantes et
// affiche une boîte de dialogue à l'utilisateur
LLimit << set( . );
ULimit << set( . );
Dialog( "Les valeurs saisies ne sont pas valides :" );
)
),
Boîte d'espacement (taille (10, 1)),
// Cette boîte à boutons ferme la fenêtre d'affichage
Boîte de boutons ("Arrêter l'ajout", InputWindow << Fermer la fenêtre)
)
)
);
Re : Saisir des données depuis une interface interactiveBonjour Ian et merci pour votre réponse rapide.
eh bien, je suis nouveau sur JSL, donc je n'ai pas encore une compréhension complète de la syntaxe et toutes mes tentatives d'écriture d'un code qui stockera simplement une entrée d'un utilisateur dans une variable ont donc échoué. Cependant, je connais quelques bases en programmation Java et la fonctionnalité correspondante que je recherche est une classe de scanner.
exemple en java :
Scanner sc = nouveau scanner (System.in) ;
Int Upperlimit = scanner.nextInt();
Dans JMP, j'aimerais que cela fonctionne comme suit :
Autant que je puisse imaginer, toutes les lignes des nouvelles colonnes et des autres colonnes devraient être visibles (peut-être que cela changera à l'avenir).
essayer (
UpperLimit = scanner.nextInt
dt = Tableau de données actuel ();
dt << Nouvelle colonne ("UpperLimit", Numeric, "Continuous", Values ( UpperLimit ) );
// la même chose devrait être faite avec LowerLimit
)
if (UpperLimit < LowerLimit, throw ("!Error") );
J'espère que vous avez compris mes exemples.
BR
Anders
Re : Saisir des données depuis une interface interactiveIl existe de nombreuses façons de procéder, et une bonne conception d'interface utilisateur dépend exactement des informations que vous souhaitez présenter à l'utilisateur afin qu'il puisse effectuer la tâche de saisie de manière fiable. Voulez-vous ou devez-vous afficher toutes les lignes du tableau, ou une seule à la fois ? Devez-vous également afficher les valeurs existantes dans une ou plusieurs autres colonnes ?