Come procedo dopo aver selezionato qualcosa da una casella combinata? //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;
) )Come procedo con le analisi selezionando solo i dati corrispondenti a 'mela'
Ecco cosa voglio da questo codice:
1, per prima cosa creo una casella combinata
2. Seleziona mela dalla casella combinata
3. Dopo aver fatto clic su "OK", dovrei eliminare le altre righe e lasciare solo le righe con la mela.
Analisi e modellazione dei dati di basefinestreRi: Come procedo dopo aver selezionato qualcosa da una casella combinata?Potresti fare qualcosa del genere.
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;
)
);Ri: Come procedo dopo aver selezionato qualcosa da una casella combinata?Hai bisogno di lievi modifiche al tuo script:
- È necessario utilizzare l'elenco per inserire i valori nella casella combinata
- Dovresti ottenere il valore selezionato dall'utente (solitamente all'interno del pulsante OK) utilizzando << ottieni selezionato
- È necessario eseguire il controllo in modo dinamico in base alla selezione dell'utente nell'istruzione Select Where
La risposta di @mmarchandTSI ha già una risposta a questi problemi, quindi fornisco una soluzione leggermente diversa in cui ottieni i valori in base alla colonna della frutta nella casella combinata, dimostri come impostare frutta specifica e usa << ottieni righe dove invece di seleziona dove
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"));
);