Création d'un menu déroulant pour la saisie interactive de l'utilisateur<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai une question concernant les scripts JMP. J'utilise JMP 11. Je souhaite créer un script interactif dans JMP. Le script aura les éléments suivants -
1. Le script affichera un message demandant aux utilisateurs de sélectionner un document. Les utilisateurs sélectionneront un nom de document.
2. Sur la base de cette sélection, le script restant exécutera des requêtes basées sur le document sélectionné par l'utilisateur et créera des graphiques et des tableaux pertinents.
Je sais comment atteindre la deuxième place dans JMP. Pour # 1, je sais comment afficher une zone de texte et demander aux utilisateurs de saisir eux-mêmes le nom complet du document, mais cela donnerait la possibilité d'une erreur manuelle et la requête restante ne fonctionnera pas si le mauvais nom est tapé.
Je pense donc qu'une requête de base de données sur la table des documents affichera tous les documents actifs sous forme de liste déroulante pour les utilisateurs et que les utilisateurs ne sélectionneront qu'un seul des documents affichés. Est-il possible de faire des scripts JMP ?
J'ai consulté le manuel de script pour rendre les scripts interactifs, mais les seules options que j'ai vues impliquaient que les utilisateurs saisissent l'intégralité du texte. Je voulais donc vérifier avec vous.
Merci beaucoup d'avance!
Re : Création d'un menu déroulant pour la saisie interactive de l'utilisateurJe développe juste un peu jean.ponte le poste.Ceci est un exemple que j'ai reçu de WK et ont souvent modifié.
/* Ouvre un exemple de table de données */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Extraction d'une liste d'âges uniques */
Résumer( a = By( :age ) );
Insérer dans( a, "", 1 );
/* Créer une boîte de dialogue modale */
Nouvelle fenêtre( "Exemple",
<
H Zone de liste(
/* Lors de la sélection d'un âge, remplissez le deuxième ComboBox avec les noms correspondants */
Panel Box( "Sélectionnez un âge :",
cb1 = ComboBox(
un,
<
Fonction( {ceci},
selection = this << Get Selected();
r = dt << Get Rows Where( :age == Num( selection ) );
ageNames = :nom;
Insérer dans( ageNames, "", 1 );
cb2 << Définir les éléments ( ageNames );
)
)
)
),
/* Imprimer les valeurs sélectionnées des deux ComboBoxes dans le journal */
Boîte de dialogue( "Sélectionnez un nom :",
cb2 = ComboBox(
{""},
<
Fonction( {ceci},
that=this<< Get Selected();
Imprimer( sélection, ça )
)
)
)
)
)
);
sel=num(sélection)
Re : Création d'un menu déroulant pour la saisie interactive de l'utilisateurPour créer une liste déroulante dans JSL, il vous suffit de créer une liste et une liste déroulante. Voici quelques exemples de JSL :
ma liste = {
"" ,
"Un" ,
"Deux" ,
"Trois" ,
"Quatre" ,
"Cinq"
} ;
faireListeChoix = expr (
choix = maListe << getSelected ;
montrer ( choix ) ;
) ;
maListe = Boîte combo ( ma liste , faireListeChoix ) ;
gagner = nouvelle fenetre ( "Afficher la liste" , maListebox ) ;
Exécutez ceci et vous verrez une liste déroulante dans une fenêtre. Lorsque vous faites votre sélection, il affichera ce que vous avez sélectionné dans le journal.
La question est maintenant de savoir comment construire votre liste ? Si vos documents sont des fichiers stockés dans un répertoire, je peux vous montrer du JSL pour créer une liste à partir du répertoire. Mais il semble que vos documents se trouvent dans une base de données ? Si tel est le cas, je pense que vous pouvez interroger la base de données et obtenir une liste. Utilisez ensuite cette liste pour créer la liste déroulante, comme indiqué. Je n'ai cependant rien écrit en utilisant une base de données, donc mes connaissances dans ce domaine sont faibles.
Est-ce que cela répond à votre question? Ou avez-vous eu besoin d'aide pour interroger la base de données ?