Wie gehe ich vor, nachdem ich etwas aus einem Kombinationsfeld ausgewählt habe? //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;
) )Wie fahre ich mit den Analysen fort, indem ich nur Daten auswähle, die „Apfel“ entsprechen?
Folgendes erwarte ich von diesem Code:
1. Ich erstelle zunächst ein Kombinationsfeld
2. Wählen Sie im Kombinationsfeld „Apfel“ aus
3. Sobald ich auf „OK“ klicke, sollten die anderen Zeilen gelöscht werden und nur noch die Zeilen mit Apfel übrig bleiben.
Grundlegende Datenanalyse und ModellierungWindowsBetreff: Wie gehe ich vor, nachdem ich etwas aus einem Kombinationsfeld ausgewählt habe?Sie könnten so etwas tun.
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;
)
);Betreff: Wie gehe ich vor, nachdem ich etwas aus einem Kombinationsfeld ausgewählt habe?Sie benötigen geringfügige Änderungen an Ihrem Skript:
- Sie müssen die Liste verwenden, um Werte in das Kombinationsfeld einzugeben
- Sie sollten den Wert erhalten, der vom Benutzer ausgewählt wurde (normalerweise innerhalb der Schaltfläche „OK“), indem Sie „<< auswählen“ verwenden
- Sie sollten die Prüfung dynamisch basierend auf der Benutzerauswahl in Ihrer Select Where-Anweisung durchführen
Die Antwort von @mmarchandTSI hat bereits eine Antwort auf diese Probleme, daher biete ich eine etwas andere Lösung an, bei der Sie die Werte basierend auf Ihrer Fruchtspalte in das Kombinationsfeld übertragen, zeigen, wie Sie bestimmte Früchte festlegen und << get rows where anstelle von select where verwenden
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"));
);