Comment puis-je procéder après avoir sélectionné quelque chose dans une liste déroulante ? //fruit is a row in my table
nw = New window ("Select fruit",
cb = combo box ("apple", "Mango", "Banana")
cb << Set Selected,
<< Set Width (20),
//Here I select apple
Button Box ("OK",
table1 << SelectWhere(:fruit!=apple) << Delete Rows;
) )Comment procéder aux analyses en sélectionnant uniquement les données correspondant à 'pomme'
Voici ce que je veux de ce code :
1, je fais d'abord une combo box
2. Sélectionnez Apple dans la liste déroulante
3. Une fois que j'ai cliqué sur "OK", les autres lignes devraient être supprimées et seules les lignes avec la pomme devraient rester.
Analyse et modélisation des données de baseles fenêtresRe : Comment procéder après avoir sélectionné quelque chose dans une liste déroulante ?Vous pourriez faire quelque chose comme ça.
table1 = New Table( "Kind of Fruity",
Add Rows( 6 ),
New Column( "fruit", Character, "Nominal", Set Values( {"Apple", "Banana", "Mango", "Apple", "Apple", "Banana"} ) ),
New Column( "Condiment",
Character,
"Nominal",
Set Values( {"Peanut Butter", "Ketchup", "Cayenne Pepper", "Chocolate Fudge", "Caramel", "Salt"} )
)
);
nw = New Window( "Select fruit",
cb = Combo Box( {"Apple", "Mango", "Banana"} ),
Button Box( "OK",
table1 << Delete Rows( table1 << Get Rows Where( :fruit != (cb << Get Selected) ) );
nw << Close Window;
)
);Re : Comment procéder après avoir sélectionné quelque chose dans une liste déroulante ?Vous avez besoin de légères modifications à votre script :
- Vous devez utiliser la liste pour saisir les valeurs dans la zone de liste déroulante
- Vous devriez obtenir la valeur sélectionnée par l'utilisateur (généralement dans le bouton OK) en utilisant << get selected
- Vous devez effectuer la vérification de manière dynamique en fonction de la sélection de l'utilisateur dans votre instruction Select Where.
La réponse de @mmarchandTSI a déjà une réponse à ces problèmes, je propose donc une solution un peu différente dans laquelle vous obtenez les valeurs basées sur votre colonne de fruits dans la liste déroulante, montrez comment définir des fruits spécifiques et utilisez << obtenir les lignes où au lieu de sélectionner où
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("fruit",
Character,
"Nominal",
Set Values({"apple", "Mango", "Banana", "apple", "Banana", "Kiwi"})
)
);
Summarize(dt, fruits = By(:fruit));
nw = New Window("Select fruit",
cb_fruits = Combo Box(fruits),
Button Box("OK",
sel_fruit = cb_fruits << get selected;
nok_fruit_rows = dt << Get Rows Where(:fruit != sel_fruit);
dt << Delete Rows(nok_fruit_rows); // note that fruits variable isn't updated
nw << Close Window;
),
cb_fruits << Set(Contains(fruits, "Kiwi"));
);