mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateur<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Arrière-plan
Je crée une petite application avec des onglets, dans l'un d'eux je demande à l'utilisateur d'ouvrir une table de données
Dans un autre onglet, j'ai une zone de liste déroulante qui affiche une liste de valeurs uniques (« unique_copy_list ») d'une colonne de cette table de données
cbx1 = essayer ( Boîte combo ( liste_copie_unique ) , ) ,
Problème:
Lorsque l'application est lancée, aucune table de données n'est sélectionnée, donc le " liste_copie_unique" n'est pas disponible,
Existe-t-il un moyen d'actualiser la liste déroulante ?
Ou il vaut mieux utiliser une approche différente
Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateurMerci les gars pour votre soutien. Point pris, je mettrai à jour bientôt. Quoi qu'il en soit, avec Remove & Append, j'ai fait le travail.
Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateurLa syntaxe JSL évolue avec le temps, donc si vous utilisez une très ancienne version de JMP, il est vraiment utile de le mentionner lorsque vous publiez une demande d'aide.Ce que vous essayez de faire peut être fait dans la version 9, mais les méthodes de mise à jour des list box et combo box ont changé depuis.Je pensais que Set Items était nouveau dans la version 10 mais peut-être que je me trompe, mais je sais que dans les versions actuelles, c'est beaucoup plus facile, comme l'illustre Peter.Vous pouvez cependant toujours utiliser le principe de base, qui consiste à envoyer des messages à la zone de liste déroulante une fois la table de données sélectionnée.Une approche longue consiste à supprimer des éléments de manière itérative (<Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateur
J'utilise JMP 9.0.2
J'ai utilisé tout le code que vous m'avez envoyé pour valider la solution en changeant simplement le nom de la colonne de "client" par "Copier" mais ce n'est pas pertinent puisque la variable unique_copy_list contient les bonnes informations mais il semble qu'elle ait défini les commandes d'éléments n'a pas l'effet souhaité
Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateurPouvez-vous envoyer votre code?Et quelle version de JMP utilisez-vous ?Mon programme ne fonctionne que si vous ouvrez l'exemple de jeu de données appelé " Données de bandes ".
Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateurMerci pour votre réponse rapide, la commande set items n'actualise toujours pas la liste déroulante mentionnée :S
Cela fonctionne bien mais pas d'erreur de journal mais la zone de liste déroulante ne la reflète pas
Aussi, j'exécute votre script complet (merci encore) et toujours non
Re : mettre à jour une combo dans laquelle la liste provient d'une table de données qui doit être ouverte par l'utilisateurVous devez configurer un rappel pour charger la combobox.Voici un petit exemple.Vous devez ouvrir l'exemple de jeu de données Bands Data pour que cela fonctionne.J'ai également inclus une fonction pour obtenir les valeurs uniques d'une colonne.
/* Nom de la fonction Obtenir des valeurs uniques
Description : Obtenez les valeurs uniques d’une colonne. Par exemple:
Les indications
------------
AAAAA
BBBBB
AAAAA
CCCCC
CCCCC
unique_list = obtenir des valeurs uniques (:Indications)
renverra {"AAAAA", "BBBBB", "CCCCC"}
Arguments:
Descripteur de colonne dtcol pour calculer des valeurs uniques pour
*/
Obtenez des valeurs uniques = Fonction ( { dtcol } , { local par défaut } ,
// Astuce Eval/expr pour que cela fonctionne.
évaluer ( expression d'évaluation (
Résumer ( liste_unique = Par ( expression ( dtcol ))))) ;
liste_unique ;
) ;
maintenant = nouvelle fenetre ( "Test" ,
boîte à onglets (
"Premier onglet" ,
ouvrir_bouton = boîte à boutons ( "Ouvrir" ,
dt = ouvrir () ;
// Cet exemple fonctionnera avec Bands Data...
liste_copie_unique = obtenir des valeurs uniques ( colonne ( dt , "client" )) ;
cbx1 << définir des éléments ( liste_copie_unique ) ;
) ,
"Deuxième onglet" ,
cbx1 = Boîte combo () , // Initialement, ce sera vide
)
) ;