Ich entwickle eine grafische Benutzeroberfläche (GUI), die es Benutzern ermöglicht, eine oder mehrere Optionen über Kontrollkästchen auszuwählen. Für jede ausgewählte Option sollte die GUI nacheinander die folgenden Aktionen ausführen:
- Datei auswählen: Öffnet ein Dialogfeld zur Dateiauswahl, damit der Benutzer eine bestimmte Datei auswählen kann, die sich auf die gewählte Option bezieht.
- Formatieren und Speichern: Verarbeiten Sie die ausgewählte Datei mit einer vordefinierten Funktion, die die Daten formatiert und die Änderungen speichert.
Nette Hilfe:
Ich brauche Hilfe beim Umgang mit Szenarien, in denen mehrere Kontrollkästchen gleichzeitig ausgewählt sind. Dabei muss sichergestellt werden, dass jede ausgewählte Option unabhängig und ohne Konflikte die zugehörigen Funktionen auslöst.
Ich bin nicht sicher, wie ich Ereignis-Listener für jedes Kontrollkästchen einrichte, um bei Auswahl die entsprechenden Funktionen auszulösen.
Ergebnis
- Über Kontrollkästchen können Benutzer eine oder mehrere Optionen auswählen.
- Nach der Auswahl für jedes aktivierte Kontrollkästchen:
- Ein Dateiauswahldialogfeld wird angezeigt, in dem der Benutzer die entsprechende Datei auswählen kann.
- Die ausgewählte Datei wird durch die Formatierungsfunktion bearbeitet.
- Die formatierten Daten werden entsprechend gespeichert.
- Die GUI bleibt reaktionsfähig und bietet während und nach den Vorgängen Feedback.
Ich habe den Code bisher mit Kommentaren angehängt, wo ich Hilfe brauche.. auch wenn es eine elegantere Lösung für GUI gibt, teilen Sie sie bitte mit
Danke
Names Default To Here( 1 );
directory_to_collect_data_table = "/C:/Users/";
data_list = {"datatable_1 ", "datatable_2", "datatable_3"};
userInput_dt = Function( {},
dt = Pick File(
"3. Pick Up Data Table_Total#1",
directory_to_collect_data_table,
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
"",
"multiple"
);
Return( dt );
);
datatable_1func = Function( {dt},
dt << New Column( "label",
Character, // The new column will store character values
Formula(
"D" || Substitute( :Extracted_Data, "A", "" ) // Prepend "D" and remove "A"
)
);
dt << Column( "Extracted_Data" ) << Hide( 1 );
dt:ROW1 << Data Type( Character );
final_data1 = Data Table( "final_data" );
);
// GUI for selecting and merging files
Userinput_1 = New Window(
Panel Box( "Select the datatable",
Check Box( data_list ),
Button Box( "Select Files", Userinput_1//add functionality
//add functionality if datatable_1 is selected then call function datatable_1func ( datatable_1 );
//whichever check box is selected accordingly a function is called
)
)
)
);Sie können << get selected verwenden, um die ausgewählten Elemente abzurufen (oder << get selected indexes, wenn Sie nur die Indizes und keine Werte möchten). Führen Sie dann eine Schleife über die Auswahlliste aus und führen Sie die Aktionen aus.
Names Default To Here(1);
nw = New Window("Example",
cb = Check Box(
{"One", "Two", "Three"}
),
Button Box("Go",
For Each({sel}, cb << get selected,
Match(sel,
"One", Show("FIRST"),
"Two", Show("SECOND"),
"Three", Show("THIRD")
);
);
);
);
Anzeigefelder für neue Fenster erstellen (jmp.com)
Sie können dem Kontrollkästchen eine Funktion zuordnen. Diese wird aufgerufen, wenn der Benutzer mit dem Kontrollkästchen interagiert. Siehe Hilfe > Skriptindex:
